2011-11-14 18 views
38

Estoy intentando vincular atributos de anclaje a un campo KnockoutJS ViewModel. Intenté algo como esto:Atributo href de enlace de datos para la etiqueta de ancla

<a data-bind="href: Link, value: Title"></a> 

pero esto no funciona. ¿Dónde puedo obtener una lista de posibles valores de vinculación de datos para elementos html?

Respuesta

90

Debe usar el enlace attr, esto le permite establecer cualquier atributo que desee.

Por ejemplo:

<a data-bind="attr: { href: Link, title: Title }, text: Title">xxx</a> 
1

Como alternativa-@RichardFriend's answer (y la opción más comúnmente usado), podrías escribir un manejador de enlace personalizado para hacer que tus vistas sean un poquito mo re escueto:

ko.bindingHandlers['href'] = { 
 
    update: function(element, valueAccessor) { 
 
    element.href = ko.utils.unwrapObservable(valueAccessor()); 
 
    } 
 
}; 
 

 
ko.applyBindings({ 
 
    myUrl: 'http://stackoverflow.com', 
 
    myText: 'Stack Overflow website' 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script> 
 

 
<a data-bind="href: myUrl, text: myText"></a>

Cuestiones relacionadas