web-dev-qa-db-fra.com

Comment avoir plusieurs attributs de liaison de données sur un élément?

J'ai besoin de plusieurs liaisons de données sur un élément. Par exemple, je veux un href ainsi qu'un html liaison de données sur na. J'ai essayé ça,

<a data-bind="html: name" 
   data-bind="attr: { href: url }" 
   data-bind="attr: { 'data-prop': xyz }">
</a>

Mais ça ne marche pas. Il semble que knock-out ne prend en charge que la liaison ndata-bind, Propriété? Comment lier à la fois le href, le html intérieur et un attribut personnalisé "data-prop" Sur un élément?

92
user960567

Comme ça:

<a data-bind="html: name, attr: { href: url }">

Vous utilisez des liaisons séparées par des virgules - l'attribut est identique à la transmission d'un objet:

{
    html: name, 
    attr: { href: url }
}

Ou, si vous parlez de plusieurs liaisons attr à la fois:

<a data-bind="html: name, attr: { href: url, 'data-prop': FullName }">
124
paulslater19

Voici comment j'ai mis en œuvre l'attribut source et l'événement click à l'aide de la liaison de données. Vous pourriez le trouver utile.

<img data-bind="{click: function(data, event) {ESVendorWidget.loadFunction(data,event)},
                 attr: {src: $data.Photo.PhotoUrl }}"
     alt="package pic" class="big" />
2
aamir sajjad

vous pouvez utiliser plusieurs propriétés en utilisant , comme ci-dessous

<a data-bind="attr: { href: url, id: id , class: classvalue}">

objet comme ça

{ url: 'http://stackoverflow.com', id:'newid' , classvalue: 'classname' }
1
Surendra Kumar Ahir

J'utilise simplement:

<input type="checkbox"
    data-bind="click: callFunction(), checkedValue: 0, checked: Card.Days">

pour un élément de case à cocher.

1
chris