Как получить несколько атрибутов привязки данных к одному элементу?

Мне нужно иметь несколько привязок данных для одного элемента. Например, я хочу привязать href, а также привязку данных html к одному тегу a. Я пробовал это,

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

Но это не работает. Кажется, нокаут поддерживает только привязку к одному свойству data-bind? Как связать как href, внутренний html, так и настраиваемый атрибут <<27 > на одном элементе?

Ответ 1

Вот так:

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

Вы используете привязки, разделенные запятыми - атрибут совпадает с передачей объекта:

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

Или, если вы спрашиваете сразу несколько привязок attr:

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

Ответ 2

Вот как я применил атрибут source и событие click, используя привязку данных. Вы можете найти это полезным.

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

Ответ 3

Я просто использую:

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

для элемента флажка.

Ответ 4

вы можете использовать несколько свойств с помощью ,, как показано ниже

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

объект, подобный этому

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