我有一个我添加到页面的淘汰组件。我试图用我创建的视图模型的实例调用ko.applyBindings
。但淘汰似乎忽略了它并创建了自己的实例。
代码:
ko.components.register("my-component", {viewModel: MyViewModel, template: "....."});
ko.applyBindings(new MyViewModel(this.config), document.getElementsByTagName("my-component")[0]);
我在console.log
的构造函数中有一个MyViewModel
,我看到创建了两个实例:一个带有我传递的参数,一个没有。淘汰赛似乎正在使用没有的那个。
我做错了什么?
答案 0 :(得分:2)
组件实际上有自己的视图模型。但是,您可以向它们传递您之前创建的视图模型的实例:
var myViewModel = new MyViewModel(this.config);
ko.components.register("my-component", { viewModel: { instance: myViewModel }});
ko.applyBindings(myViewModel);