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

发布于 2024-12-14 18:36:43 字数 269 浏览 3 评论 0原文

我试图将模板的一部分绑定到数据模型根上的属性,同时根据可观察数​​组构建模板。

这个jsfiddle: http://jsfiddle.net/mgxyE/2/ 简洁地说明了我正在尝试的内容来完成。

span 失败了,因为我不知道如何在模板内设置该绑定。有什么帮助吗?

I'm trying to bind part of a template to a property that is on the root of my data model, while building the template off an observable array.

This jsfiddle: http://jsfiddle.net/mgxyE/2/ illustrates compactly what I'm trying to accomplish.

the span <span data-bind='text: message'></span> is what is failing because I can't figure out how to set up that binding inside a template. Any help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

若沐 2024-12-21 18:36:46

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

http://jsfiddle.net/Afx6d/

With Knockout JS 1.3, you can use the parent binding context:

http://jsfiddle.net/Afx6d/

豆芽 2024-12-21 18:36:45

如果您的视图模型具有全局范围,那么您可以简单地执行以下操作:

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

If your viewmodel has global scope, then you can simply do:

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

In your fiddle, you would want to change the option from onLoad to no wrap (body) for how the JavaScript is loaded.

Another options is to pass the value in via templateOptions. This would look like:

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

Then, bind to it like (you could call it message, just used myMessage to show where the name comes from):

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

Finally, if you use KO 1.3 beta, which I would recommend, then you can simply do:

<span data-bind='text: $root.message'></span>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文