知道 ko.applyBindings(vm) 何时结束并调用 vm.anymethod()

Posted

技术标签:

【中文标题】知道 ko.applyBindings(vm) 何时结束并调用 vm.anymethod()【英文标题】:Know when ko.applyBindings(vm) ends and call vm.anymethod() 【发布时间】:2013-06-01 14:00:45 【问题描述】:

我们是否可以知道 ko.applyBindings(VM) 何时完成,然后在页面加载或用户刷新时(F5)只调用一次 VM 中定义的任何方法。 我想要类似这个谷歌小组讨论的东西:-

https://groups.google.com/forum/?fromgroups#!topic/knockoutjs/E_r-9-79B_U

谢谢

【问题讨论】:

什么意思?绑定是同步应用的,所以它在返回时完成。 【参考方案1】:

ko.applyBindings() 是同步的,所以在下一条语句完成:

 var vm = new MyViewModel();
 ko.applyBindings(vm);
 // now bindings are done!!
 vm.DoSomethingCool();

过去,我在我的视图模型中包含了一个名为initialized 的可观察属性,它在构造函数中设置为false,但在applyBindings 之后立即设置为true。我已使用附加到该属性的绑定来在绑定完成时隐藏所有内容,然后在完成后使其可见。

【讨论】:

以上是关于知道 ko.applyBindings(vm) 何时结束并调用 vm.anymethod()的主要内容,如果未能解决你的问题,请参考以下文章

Knockout 组件与其他 viewModels 共存

淘汰赛仅更新部分视图模型

KnockoutJS - 点击事件后的数据绑定

添加项目以淘汰视图模型,不会更新视图

knockout从函数中访问observable

Knockout JS 增加去除修改绑定