具有多个视图模型的Knockout和Requirejs - 最佳实践

时间:2016-12-19 07:51:58

标签: javascript jquery knockout.js requirejs

我试图找出使用多个视图模型设置Knockout和Requirejs的正确方法。

我有多个视图页面,每个页面都有自己的视图模型,如:

  • page1.html - page1.js
  • page2.html - page2.js
  • 更多

我有一个 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移动到视图模型,也会出现同样的问题。

0 个答案:

没有答案