如何在一个元素上具有多个数据绑定属性?


94

我需要在一个元素上具有多个数据绑定。例如,我要在一个标签上href同时进行html数据绑定。我已经试过了 a

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

但这是行不通的。敲除似乎只支持绑定一个 data-bind属性?如何在一个元素上同时绑定href,内部html和自定义data-prop属性?

Answers:


127

像这样:

<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 }">

您还能告诉我,如果viewModel.tasks = ko.observableArray(tsks),然后更改viewModel.tasks = [new Array],如何辨别该数组已更改
user960567 2012年

设置ko.observable值时,请尝试执行以下操作:viewModel.tasks([1,2,3]);。即您将其称为函数,将新值作为参数传递
paulslater19 2012年

2

这就是我使用数据绑定实现source属性和click事件的方式。您可能会发现它很有用。

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

1

我只是使用:

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

复选框元素。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.