2013-12-12 32 views
0

我有一個很長的JavaScript文件,具有Knockout視圖模型和相關類。如何將Knockout視圖模型拆分爲多個文件

我想把它分成幾個文件(每個類一個文件),但是經歷了Knockout的問題。 也許我做錯了什麼。

我還沒有在Stackoverflow上找到一個簡單的解決方案,所以我決定分享我自己的解決方案(下圖)。 它看起來很簡單明顯,但我希望它可以幫助開發人員減少Javascript的經驗。

我看到這個問題:Splitting knockout view model into multiple files但它沒有幫助我。

回答

0

我的(非常簡單)解決方案就是這樣。

ViewModel.js

$(function() { 


    function ViewModel() { 

     var self = this; 

     //..... 

     self.someObservable= ko.observable(); 

     //.....   

     self.init = function() { 

      var someObject = new esd.model.SomeObject(param1, param2); 
      self.someObservable(someObject); 
     } 

     self.init(); //Running the init code 


} 

var esd = esd || {}; 
esd.model = esd.model || {}; 
esd.model.viewModel = new ViewModel(); 
ko.applyBindings(esd.model.viewModel); 

}); 

SomeObject.js

var esd = esd || {}; 
esd.model = esd.model || {}; 

esd.model.SomeObject= function(param1, param2) { 
    var self = this; 

    //..... 
}; 
+0

真的沒有必要打電話給你VAR ESD = ESD || {}和esd.model = esd.model || {}每次你有一個文件。另外,你不應該把你的'class'聲明設置爲esd.model的對象...只需var SomeObject = function(...){}然後設置esd.model.someObject = new SomeObject(...) – beauXjames

+0

@beauXjames - 我寧願爲'class'聲明命名空間,就像它在C#中一樣。 –

+0

未捕獲的ReferenceError:SomeObject未定義 –

相關問題