以前の投稿から、次のコード ブロックを使用して作業しました。
;(function(){
var mythings = {};
function initializer($, _, Backbone, tableModel){
return Backbone.Collection.extend({
url: 'main-contact', <!-- this used to be this.url.
model: tableModel,
initialize: function(models, options) {
this.fetch();
}
});
}
define([
'jquery',
'underscore',
'backbone',
'models/tableModel'
],
function($, _, Backbone, tableModel) {
if (!mythings.tablesCollection){
// this will be done on first run.
mythings.tablesCollection = initializer($, _, Backbone, tableModel);
}
// all others will just return same exact instance of collection class
return mythings.tablesCollection;
});
})();
まず、ブロックの先頭にあるセミコロンは何を意味するのでしょうか? 次に、次のように、ルートで実行時に URL を渡す必要があります。
var t = new tablesCollection(null, { url: 'main-contact'} );
これは、AMD としてこのプロジェクトを再作成しようとしているときに、私が今まで行ってきたことです。このように、実行時に URL を自己呼び出しコードのブロックに渡すにはどうすればよいですか?
編集:
define([
'jquery',
'underscore',
'backbone',
'models/tableModel',
'collections/tablesCollection',
'views/tablesView'
], function($, _, Backbone, tableModel, tablesCollection, tablesView) {
require(['collections/tablesCollection'], function(tablesCollection) {
var t = new tablesCollection(null, {url: 'main-contact'});
var tables = new tablesView({ collection: t, template: 'main-contact-template'});
$('#web-leads').html(tables.render().el);
});
});