100

我需要在一个元素上有多个数据绑定。例如,我想要一个标签上hrefhtml数据绑定。我试过这个, a

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

但这不起作用。似乎淘汰赛只支持绑定一个 data-bind属性?如何在一个元素上同时绑定href、innerhtml和自定义 " " 属性?data-prop

4

5 回答 5

136

像这样:

<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 }">
于 2012-05-22T10:16:21.910 回答
2

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

<img data-bind="{click: function(data, event) {ESVendorWidget.loadFunction(data,event)},
                 attr: {src: $data.Photo.PhotoUrl }}"
     alt="package pic" class="big" />
于 2013-01-15T15:01:42.840 回答
1

我只是使用:

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

对于复选框元素。

于 2015-02-26T10:43:13.773 回答
1

您可以使用多个属性,, 如下所示

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

像这样的对象

{ url: 'http://stackoverflow.com', id:'newid' , classvalue: 'classname' }
于 2017-02-01T08:59:48.860 回答
0

你可以像下面这样使用

data-bind="text: method.method_title, attr: {'id': 'label_method_' + method.method_code}"

于 2021-09-23T09:18:36.727 回答