Как получить несколько атрибутов привязки данных к одному элементу?
Мне нужно иметь несколько привязок данных для одного элемента. Например, я хочу привязать 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' }