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