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

时间:2012-05-22 10:13:58

标签: javascript jquery knockout.js

我需要在一个元素上有多个数据绑定。例如,我想要一个 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”属性?

4 个答案:

答案 0 :(得分:124)

像这样:

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

答案 1 :(得分:2)

这是我使用data-bind实现source属性和click事件的方法。您可能会发现它很有用。

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

答案 2 :(得分:1)

我只是使用:

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

表示复选框元素。

答案 3 :(得分:1)

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

,
像这样的对象

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