0

有没有一种干净的方法可以使用 KnockoutJS 仅将 observable 的初始值绑定到 dom 元素?

我知道你可以通过绑定到一个不可观察的来实现这一点,但我宁愿不创建一个多余的属性来保存另一个可观察属性的初始值。

我试过这个,但无济于事——属性仍然随着每次变化而更新

<input type="text" id="tbName" 
  data-bind="value:name, attr: { 'data-initialnamevalue': ko.utils.unwrapObservable($data.name()) }" />
4

2 回答 2

1

虽然我同意上面的 Zero21xxx,但我想您可以使用自定义绑定,在其中提供 init 方法,但不提供更新方法。

不确定与仅添加另一个属性相比是否值得付出努力。

这是我的意思的一个简单示例:http: //jsfiddle.net/ZkFRu/3/

第一段绑定属性的当前值,第二段绑定初始值。单击该按钮会增加该属性。

于 2012-04-23T20:34:01.370 回答
0

您可以通过添加括号直接绑定到可观察值而不是可观察值,以便在首次绑定时注入该值。当元素更新时,它不会更新 observable,因为绑定是在值上而不是 observable 上(即它不知道如何调用 observable 函数来设置值)。

<input type="text" id="tbName" data-bind="value: name()" />
于 2012-05-02T21:06:55.857 回答