knockoutjs,通过自定义绑定修改时未观察到可观察数组

发布于 2024-12-13 19:04:49 字数 405 浏览 0 评论 0原文

我有一个自定义绑定,可以在 init 上创建事件处理程序。在这些事件处理程序中,我调用视图模型的一个函数来更新我的视图模型属性之一(这是一个可观察的数组)。

但是,绑定到此属性的 DOM 元素不会更新。

此外,如果我通过直接调用视图模型的方法来更改视图模型属性,则 DOM 元素会正确更新。另外,如果使用之前的第一种方法更改了属性,那么现在视图模型属性包含所有正确的信息。

抱歉,如果不清楚,这里是测试它的小提琴: http://jsfiddle.net/8RTjN/67/ 运行它时,选择一行(视图模型已更新,但绑定未更新),然后单击添加按钮(直接修改视图模型属性),现在绑定已正确更新。

那么:我做错了什么?

I have a custom binding that creates event handlers on init. In those event handlers, I call a function of my view model that updates one of my view model property (which is an observable array).

However the DOM elements that are bound to this property are not updated.

Furhermore, if I change the view model property by calling directly a method of the view model, the DOM elements are updated correclty. Also, if the property was changed using the first method prior, now the view model property contains all the rigth information.

Sorry if this is not clear, here is fiddle to test it: http://jsfiddle.net/8RTjN/67/
When running it, select a row (the viewmodel is updated but bindings are not), then click the add button (which modifies directly the viewmodel property) and now the bindings are updated correctly.

So: What am I doing wrong?

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

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

发布评论

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

评论(1

明明#如月 2024-12-20 19:04:49

当您推送到 selectedRequests 时,您当前

this.selectedRequests().push(request);

不需要 ()

this.selectedRequests.push(request);

When you push to selectedRequests you currently have

this.selectedRequests().push(request);

You do not need the ()

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