实现ko.applyBindings的最佳位置

时间:2013-12-13 22:04:26

标签: jquery knockout.js typescript

我在我的MVC项目中使用TypeScript和Knockout,在我的.ts文件中我实现了viewmodel类和模块下的另外2个类,我也在$(document).ready下使用jquery。 现在我的问题是我想应用绑定如果我在类下面的一个地方实现ko.applyBindings(viewModel)它获取设置值但是当我更改我的文本框和下拉值时它永远不会设置b / c ko.applyBindings(viewModel)不是再次申请。

不知道我应该在哪里实现ko.applyBindings(viewModel),请告诉我我将要实现的想法或位置。

由于

1 个答案:

答案 0 :(得分:3)

应该为标记调用一次ko.applyBinding。

因此,如果您有一个包含某些绑定的页面,例如

<input data-bind="value: vmtext">

您可以在页面底部或任何地方的domready活动中调用ko.applyBinding。

不要忘记,为了使双向绑定工作,您需要在vm中使用ko.observable:

var vm = {
     vmtext: ko.observable("initial value")
};
ko.applyBindings(vm);

如果稍后在工作期间添加一些标记(例如异步加载部分视图标记),则必须对其进行applyBindings以使绑定有效。