Knockout JS 中的主细节

发布于 2024-12-22 13:49:02 字数 798 浏览 1 评论 0原文

我做错了什么?我正在尝试创建一个简单的主详细信息视图,如“规范 MVVM”示例。

这是 JSfiddle 中不起作用的简化示例: http://jsfiddle.net/UJYXg/2/

我希望在文本框中看到所选“项目”的名称,但它却显示“可观察”?

这是我的违规代码:

var list = [ { name: "item 1"} , { name: "Item 2" }];

var viewModel = {
    items : ko.observableArray(list),
    selectedItem : ko.observable(),
}

viewModel.setItem = function(item) {
    viewModel.selectedItem(item);   
}

ko.applyBindings(viewModel);

以及 HTML

<ul data-bind="foreach: items">
    <li>
        <button data-bind="click: $root.setItem, text:name"></button>
    </li>
</ul>

<p>
    <input data-bind="value:selectedItem.name" />
</p>

What am I doing wrong? I am trying to create a simple master details view a la the 'canonical MVVM' example.

Here's a simplified example in JSfiddle that doesn't work: http://jsfiddle.net/UJYXg/2/

I would expect to see the name of the selected 'item' in the textbox but instead it says 'observable'?

Here's my offending code:

var list = [ { name: "item 1"} , { name: "Item 2" }];

var viewModel = {
    items : ko.observableArray(list),
    selectedItem : ko.observable(),
}

viewModel.setItem = function(item) {
    viewModel.selectedItem(item);   
}

ko.applyBindings(viewModel);

And the HTML

<ul data-bind="foreach: items">
    <li>
        <button data-bind="click: $root.setItem, text:name"></button>
    </li>
</ul>

<p>
    <input data-bind="value:selectedItem.name" />
</p>

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

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

发布评论

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

评论(1

时光病人 2024-12-29 13:49:02

你们真的很亲近。只需要做 value: selectedItem().name 或更好地使用 with 绑定来更改您的范围。此外,您引用的脚本稍微过时了(在 2.0 中,单击将数据作为第一个参数传递)。

示例如下: http://jsfiddle.net/rniemeyer/acUDH/

You are really close. Just need to do value: selectedItem().name or better use the with binding to change your scope. Also, the script that you are referencing is slightly out-of-date (in 2.0 click passes the data as the first arg).

Sample here: http://jsfiddle.net/rniemeyer/acUDH/

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