Атрибут href привязки данных для тега привязки - PullRequest
40 голосов
/ 14 ноября 2011

Я пытаюсь привязать атрибуты привязки к полю KnockoutJS ViewModel. Я пробовал что-то вроде этого:

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

но это не работает. Где я могу получить список возможных значений привязки данных для элементов HTML?

Ответы [ 4 ]

95 голосов
/ 14 ноября 2011

Вам необходимо использовать привязку attr, это позволит вам установить любой понравившийся вам атрибут.

Например:

<a data-bind="attr: { href: Link, title: Title }, text: Title">xxx</a>
12 голосов
/ 14 ноября 2011

Здесь вы можете найти список всех возможных привязок.

http://knockoutjs.com/documentation/value-binding.html

с левой стороны (боковая панель) вы найдете ссылки на другие привязки, такие как текст, стиль атрибута и многое другое.

Вы можете сделать это

attr: { href: Link}, text: Title как xwrs с комментариями

или создать шаблон http://knockoutjs.com/documentation/template-binding.html

надеюсь, что это поможет

1 голос
/ 25 июля 2015

В качестве альтернативы от до @ RichardFriend (и более часто используемая опция) вы можете написать собственный обработчик привязки, чтобы сделать ваши представления немного более краткими:

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>
0 голосов
/ 08 мая 2018

Это прекрасно работает для меня

            <td class="CommandArea" rowspan="2">
            <p><a href='#' data-bind="click: abandon" >Abandon</a></p>
            </td>
...