Knock-out attr liaison avec des attributs comme "lecture seule" et "personnes handicapées"
Ce qui est suggéré de "meilleures pratiques" de façon à utiliser knock-out du "attr" liaison de données avec autonome des attributs comme "readonly" et "désactivé"?
Ces attributs sont spécial qu'ils sont généralement activée par le réglage de la valeur de l'attribut l'attribut nom (bien que de nombreux navigateurs fonctionnent très bien si vous suffit simplement d'inclure les noms d'attribut sans aucune valeurs dans le code HTML):
<input type="text" readonly="readonly" disabled="disabled" value="foo" />
Toutefois, si vous ne pas voulez ces attributs pour être appliquée, la pratique générale est de simplement les ignorer complètement à partir du HTML (par opposition à faire quelque chose comme readonly="false"):
<input type="text" value="foo" />
Knock-out du "attr" liaison de données ne prend pas en charge ce scénario. Dès que j'ai de fournir un nom d'attribut, j'ai besoin de fournir une valeur ainsi:
<input type="text" data-bind="attr: { 'disabled': getDisabledState() }" />
Est là une manière de croix-navigateur de désactiver l'option "désactivé" ou "readonly'? Ou est-il un truc avec un liaison personnalisée que je peux utiliser pour ne pas rendre rien si je ne veux pas l'élément désactivé ou mis en lecture seule?
- Je ne comprends pas, pourquoi vous avez besoin de fournir désactivé si vous n'avez pas désactivé pour le même spectacle?
- L'exemple que j'ai donné est conçu pour simplement illustrer le problème. La question est: est-ce que certains attributs HTML sont autonomes attributs - ils n'ont pas vraiment besoin d'une valeur. Et si vous ne voulez pas de ces attributs pour influer sur le code HTML, puis il vous suffit de les omettre. Mais knock-out "de l'attribut" data-binding mécanisme ne prend pas en charge ce scénario.
Vous devez vous connecter pour publier un commentaire.
Knock-out du "attr" liaison de données prend en charge ce scénario juste retour
null
ouundefined
de votregetDisabledState()
fonction ne sera pas émettre de l'attribut.Démo Violon.
"disabled"
etundefined
.Vous pouvez également créer une liaison pour readonly comme ceci:
Source: https://github.com/knockout/knockout/issues/1100
Knock-out a un activer liaison, ainsi que d'un désactiver de liaison.
Je ne suis pas sûr s'ils étaient disponibles lorsque la question a été posée, mais tout le monde se référant à cette question devrait être au courant.
!observableProperty
ne fonctionne pas. Le PAS!
n'est pas retenue par l'évaluateur.