knockoutjs:在模板中绑定到数组外的可观察属性

时间:2011-11-09 21:51:16

标签: javascript data-binding knockout.js

我正在尝试将模板的一部分绑定到数据模型根目录上的属性,同时从可观察数组构建模板。

这个jsfiddle:http://jsfiddle.net/mgxyE/2/紧凑地说明了我想要完成的事情。

跨度<span data-bind='text: message'></span>是失败的,因为我无法弄清楚如何在模板中设置绑定。有什么帮助吗?

2 个答案:

答案 0 :(得分:3)

如果您的viewmodel具有全局范围,那么您可以执行以下操作:

<span data-bind='text: model.message'></span>

在您的小提琴中,您可能希望将选项从onLoad更改为no wrap (body)以了解JavaScript的加载方式。

另一个选择是通过templateOptions传递值。这看起来像是:

<div data-bind='template: {name :"nodeTemplate", foreach: nodes, templateOptions: { myMessage: message} }'></div>

然后,绑定到它就像(你可以称之为消息,只是使用myMessage来显示名称的来源):

<span data-bind='text: $item.myMessage'></span>

最后,如果您使用我推荐的KO 1.3 beta,那么您可以这样做:

<span data-bind='text: $root.message'></span>

答案 1 :(得分:1)

使用Knockout JS 1.3,您可以使用父绑定上下文:

http://jsfiddle.net/Afx6d/