6
我的应用程序视图模型正在增长非常大。我如何正确地将它分解成文件和命名空间?我是否创建第二个名称空间对象并将视图模型作为参数传入?分裂knockoutjs
var BALL = {};
BALL.roll = function(avm) { // function code };
我的应用程序视图模型正在增长非常大。我如何正确地将它分解成文件和命名空间?我是否创建第二个名称空间对象并将视图模型作为参数传入?分裂knockoutjs
var BALL = {};
BALL.roll = function(avm) { // function code };
我个人的偏好是不是分手了我applyBindings
电话,而是用一个单一的全局命名空间分公司工作过的这一点。
我的推理是,为了使多个绑定正确工作而不是冲突,您需要非常小心,您选择的目标dom元素不会发生更改。不幸的是,这个标记有一个随时间变化的恶习,这会让你稍后在viewModels中遇到麻烦。我已经在一个非常大的项目KO使用
我一般的做法是为整个应用程序如myapp
我最近一直使用
一些命名空间的代码,以便在您的myapp.navigation文件,你将不得不
Namespace("myapp.navigation", function() {
var self = this; // your myapp.navigation object
this.someFunction = function() {
}
});
这仅仅是使用自调用函数来速记传入一个手动构建的名称空间。它给你一个私有的闭包,你可以在不同的js文件中自由地使用具有相同命名空间的多个命名空间调用。
你applyBindings调用可以永远
ko.applyBindings(myapp);
希望这有助于。
这个答案可能会帮助你:http://stackoverflow.com/questions/8676988/example-of-knockoutjs-pattern-for-multi-view-applications。在Knockout中有三种使用多视图模型的选项。 – 2012-02-09 14:07:16