我试图找出使用多个视图模型设置Knockout和Requirejs的正确方法。
我有多个视图页面,每个页面都有自己的视图模型,如:
我有一个 main.js ,我需要这些视图模型
require([
"page1",
"page2"
, function ( page1, page2 ) {
if( $("#page1").length ){
ko.applyBindings(new page1());
}
if( $("#page2").length ){
ko.applyBindings(new page2());
}
});
pagex.js
define(["jquery", "knockout"], function($, ko) {
return function viewModel() {
console.log("foo");
};
});
我在多次应用绑定时遇到了一个常见的问题,所以使用jquery是我使用它的唯一方法,但这不是推荐的方法吗?
我也试过使用if ko.applyBindings(new page1,(), document.getElementById('page1'))
,但由于我需要来自main的所有视图模型,因此它会出现同样的问题。
即使我将applybindings移动到视图模型,也会出现同样的问题。