Ich versuche, Ankerattribute an ein KnockoutJS ViewModel-Feld zu binden. Ich habe so etwas ausprobiert:
<a data-bind="href: Link, value: Title"></a>
aber das geht nicht. Wo kann ich eine Liste möglicher Datenbindungswerte für HTML-Elemente erhalten?
Sie müssen die Bindung attr
verwenden, damit Sie jedes beliebige Attribut setzen können.
Zum Beispiel:
<a data-bind="attr: { href: Link, title: Title }, text: Title">xxx</a>
Hier finden Sie eine Liste aller möglichen Bindungen.
http://knockoutjs.com/documentation/value-binding.html
auf der linken Seite (Seitenleiste) finden Sie Links zu anderen Bindungen wie Text, Attr-Stil und mehr.
Du kannst das
attr: { href: Link}, text: Title
wie xwrs
commented
oder erstellen Sie eine Vorlage http://knockoutjs.com/documentation/template-binding.html
hoffe das hilft
Als alternative zu @ RichardFriends Antwort (und eine häufig verwendete Option) können Sie einen benutzerdefinierten Bindungshandler schreiben, um Ihre Ansichten etwas knapper zu gestalten:
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>
Das funktioniert perfekt für mich
<td class="CommandArea" rowspan="2">
<p><a href='#' data-bind="click: abandon" >Abandon</a></p>
</td>