it-swarm.com.de

Wie kann man mehrere Datenbindungsattribute für ein Element haben?

Ich muss mehrere Datenbindungen für ein Element haben. Zum Beispiel möchte ich ein href sowie ein html Datenbindung auf einsa Tag. Ich habe das versucht,

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

Das geht aber nicht. Es scheint, dass Knockout nur das Binden unterstützt einsdata-bind Eigentum? Wie binde ich das href, das innere html und ein benutzerdefiniertes "data-prop "Attribut für ein Element?

92
user960567

So was:

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

Sie verwenden durch Kommas getrennte Bindungen. Das Attribut entspricht der Übergabe eines Objekts:

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

Oder wenn Sie nach mehreren attr Bindungen gleichzeitig fragen:

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

Auf diese Weise habe ich das Quellattribut implementiert und das Ereignis click mithilfe von data-bind verwendet. Vielleicht finden Sie es nützlich.

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

Sie können mehrere Eigenschaften mit , wie folgt verwenden

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

objekt wie dieses

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

Ich benutze einfach:

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

für ein Ankreuzfeldelement.

1
chris