2012-05-22 6 views
87

Necesito tener múltiples enlaces de datos en un elemento. Por ejemplo, quiero un href, así como un html enlace de datos en una etiquetaa. He intentado esto,¿Cómo tener múltiples atributos de vinculación de datos en un elemento?

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

Pero esto no funciona. Parece nocaut solo admite vinculante unadata-bind propiedad? Cómo enlazar el href, el html interno y un atributo personalizado "data-prop" en un elemento?

Respuesta

116

De esta manera:

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

Usted utilizar fijaciones separados por comas - el atributo es la misma que pasar un objeto:

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

O, si usted está preguntando por múltiples attr enlaces a la vez:

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

¿Puede usted también me dicen que, si viewModel.tasks = ko.observableArray (tsks), entonces cambiando viewModel.tasks = [new Array], Cómo decirle knock que la matriz ha cambiado – user960567

+0

al establecer un valor ko.observable, intente hacerlo así: 'viewModel.tasks ([1,2,3]);'. Es decir. lo llama como una función, pasando el nuevo valor como parámetro – paulslater19

2

Así es como implementé el atributo de origen y hago clic en evento usando data-bind. Lo podrías encontrar útil.

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

simplemente uso:

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

para un elemento casilla.

0

puede utilizar varias propiedades utilizando ,, como a continuación

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

objeto como éste

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