我已經配置了requirejs來加載核心庫(jQuery,下劃線,主幹)。 現在我想添加我的骨幹模型,控制器,視圖等異步加載Requirejs2:如何處理自己的文件?
我發現了很多教程這個主題和很多「準備好」樣板不幸我提到,大多數方法是depreceated或相當複雜(即使有更好的方法)。
一個例子是我如何配置的主庫requirejs: https://stackoverflow.com/a/10914666/1309847
因此,我怎麼加載骨幹意見,型號,類別,路由器,控制器和模板,用一簡單和有效的Requirejs配置?
我跟着您選擇的建議,但得到一些奇怪的錯誤
main.js
require.config({
paths: {
jquery: 'vendors/jquery/jquery',
underscore: 'vendors/underscore/underscore',
backbone: 'vendors/backbone/backbone'
},
shim: {
underscore: {
exports: '_'
},
backbone: {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
}
}
});
require(['app'], function(app){
});
app.js
define(['jquery', 'underscore', 'backbone'], function($, _, Backbone){
var Message = new Backbone.Model.extend({
//idAttribute: '_id',
//defaults: { body: '' }
//url: function(){ return this.id ? '/messages/' + this.id : '/messages'; }
});
var newMessage = new Message({ body: 'hi' });
newMessage.save();
});
在app.js錯誤occours:
Uncaught TypeError: Object [object Object] has no method 'apply'
當我評論新的Backbone.Model.extend部分時,我不再有任何錯誤。
似乎加載下劃線或主幹網時出現問題。在app.js的第二行放置一個斷點,並檢查「_」或「Backbone」是否未定義。在這種情況下,請檢查您的路徑,以及libs版本尋求兼容性問題。如果一切都失敗了,請嘗試使用AMD骨幹版本和undercore:https://github.com/amdjs – eabait
我做了一個console.log三個參數。所有三個看起來有效,但我已經指定了更多的錯誤。它發生在我想創建一個新的Message實例時。 (我也可以取消註釋模式,但實例化會給出錯誤) –
好的,刪除此行中的「new」「var Message = new Backbone.Model.extend」。它應該是var Message = Backbone.Model.extend – eabait