2011-11-14 10 views
38

Sto tentando di associare gli attributi di ancoraggio a un campo ViewModel KnockoutJS. Ho provato qualcosa di simile:Attributo href data-bind per il tag di ancoraggio

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

ma questo non funziona. Dove posso ottenere un elenco di possibili valori di data-bind per gli elementi HTML?

risposta

90

È necessario utilizzare l'associazione attr, questo consente di impostare qualsiasi attributo che ti piace.

Ad esempio:

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

Come alternativa-@RichardFriend's answer (e più possibilità di uso comune), potresti scrivere un gestore di binding personalizzato per rendere le tue visualizzazioni un po 'più semplici re laconico:

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>

Problemi correlati