2014-09-03 18 views
-1

我已經將項目移至require,現在我試圖使用主幹和下劃線重新編寫一些代碼。傳統的模型,視圖,控制器文件存在。下面是將模型移動到需求定義的嘗試的開始。無法將現有的模型文件移動到Require.js中

define ("Model", function() { 

    var Model = function (connectToServer, soundTypeNum, isMobile) 
    { 
     //code 
    }; 
return Model; 

    // };//Error 

    });//Fixed 

但我收到以下錯誤:

未捕獲的語法錯誤:輸入意外結束

編輯:現在我正型號是不確定的,當控制器嘗試創建模型的新實例:

var model = new Model(connectToServer); 

任何想法?

+1

不應該讀'define(「Model」,function(Model){...});'? – Nit 2014-09-03 11:19:53

+0

謝謝尼特,但沒有奏效。一旦它在需求定義中,現有控制器就不能再找到它。我可能需要將控制器也移到一個定義中。但爲什麼它不能找到模型!? – Paul 2014-09-03 11:26:37

+0

是的,你應該加上你必須在控制器代碼中設置'Model',以確保它將被加載並可用於控制器 – Evgeniy 2014-09-03 11:29:50

回答

2

我相信require.js必須採取數組的依賴關係,即使只有一個。正如尼特所說,還要確保你將相關性傳遞給函數。

define(["Model"], function(theModel) { 
    var Model = // initialize Model here 
    return Model; 
}); 

如果您不是在其他地方啓動Model,那麼爲什麼它是依賴項?你可以傳遞依賴的空白陣列需要的功能,如果需要的話:

define([], function() { 
    var Model = // initialize Model here 
    return Model; 
}); 

我不知道你是怎麼打算把骨幹發揮後「以使代碼更易於管理。」我認爲在你啓動它的文件中聲明Model作爲主幹模型會更容易。只需將主幹定義爲依賴關係並擴展其Model類即可。

define(["underscore", "backbone"], function(_, Backbone) { 
    var Model = Backbone.Model.extend({ 
     // initialize Model here. 
    }); 
    return Model; 
}); 

希望這會有所幫助。

+0

這非常有用:)謝謝。 我的模型文件聲明模型,但隨後用原型對象擴展它。它們在同一個文件中。你將如何處理它們? – Paul 2014-09-03 13:50:28

相關問題