Conditionnellement ajouter un attribut d'élément dans knockout.js
L'knockout.js la bibliothèque dispose d'un "attr"
liaison de données qui permet de modifier dynamiquement la valeur d'un attribut d'élément HTML (par exemple, le "titre"). Toutefois, dans certains cas, l'attribut peut ou peut ne pas être nécessaire en fonction des observables sur l'objet lié. Par exemple, si mon modèle est un "titre" observables je souhaiterez peut-être définir l'attribut "title" si elle est présente (non-nulle) ou de l'ignorer l'attribut entièrement si elle n'est pas présente (null).
Knock-out ne fournit aucun moyen pour conditionnellement définir un attribut? (Idéalement sans conditionnellement à rendu l'ensemble de l'élément balise d'ouverture...)
[Remarque] Cette même nom que la question a été effectivement résolu par knock-out du traitement spécial des classes CSS et ne se rapportent pas à cette question (ou de son propre titre): Comment conditionnellement rendre une classe css avec knockoutjs
- Je pense que c'est le comportement par défaut si observables retourne null mais j'ai peut-être tort. Puis-je vous demander pourquoi vous devez explicitement de ne pas définir l'attribut au lieu d'title="" dans le cas d'une valeur vide ?
Vous devez vous connecter pour publier un commentaire.
J'avais besoin de ce moment de la sélection (que j'étais générer manuellement au lieu de construit dans knock-out).
Ce dit de toujours mettre à jour le "texte" de l'attribut et pour ajouter de la "valeur" de l'attribut, mais seulement d'ajouter "selected" si les données a déjà une valeur de 'selected' défini.
Vous pouvez créer une liaison personnalisée attrIf qui va vérifier la valeur du observables boolean avant de les ajouter ou non les attributs. Voir cet exemple:
Cette réponse a été récupéré à partir de Knock-out attr liaison avec des attributs comme "lecture seule" et "personnes handicapées"
Je souhaite que je pourrais avoir juste répondu à @abg, mais je ne peux pas. Ma solution aurait été d'avoir deux fois le même élément HTML, l'un avec l'attribut, l'autre sans, et un knock-out condition pour ajouter une fonction de l'élément. Je connais aussi cette coutume biding, mais dont la solution est plus efficace?