9
我當前使用require.js像這樣工作AMD骨幹型號:如何使用Node.js的具有和AMD(在瀏覽器上require.js)骨幹示範
// models/game.js
define(['backbone'],
function(Backbone) {
var Game = Backbone.Model.extend({
urlRoot : '/games/'
, defaults : {
name : null
}
});
return Game;
});
的AMD /骨幹組織來自this tutorial和jrburke's Pull Request for Backbone。
我想在Node.js中使用Backbone Model,因爲在不使用AMD的情況下共享Backbone模型和集合在過去運行良好,顯然我是受虐狂。
所以我嘗試了以下(由骨幹MOD靈感):
// models/game.js
(function(root, factory) {
if (typeof exports !== 'undefined') {
factory(root, exports, require('backbone'));
}
else if (typeof define === 'function' && define.amd) {
define(['backbone'], function(Backbone, exports) {
factory(root, exports, Backbone);
});
}
}(this, function(root, Game, Backbone) {
Game = Backbone.Model.extend({
urlRoot : '/games/'
, defaults : {
name : null
}
});
return Game;
}));
但Game
現在是不確定的,當我包括在瀏覽器中:
// collections/games.js
define(['backbone', 'models/game'],
function(Backbone, Game) {
var Games = Backbone.Collection.extend({
model: Game
, initialize: function() {
console.log(Game)
// Game is undefined
var game = new Game({ name: 'game1' });
}
});
return Games;
});
當我看着CommonJS notes ,恐怕我還不清楚。 如何在瀏覽器中使用與AMD文件相同的骨幹模型文件和Node.js模塊?
對於獎金:是否有比每個文件頂部〜10行更清潔的方式?理想情況下沒有define shim。