0
我從url獲取數據:/ app/api/assetDetail/{id}其中id是傳遞給設置新assetModel和assetView的演示者的參數。Backbone.js使用來自url的數據設置模型
我正努力在哪裏建立和使用id調用上述網址,然後設置模型。
資產主持人
define([
'text!html/regions/tplAssetPage.html',
'views/assetView',
'collections/assets',
'models/asset'
],
function (template, AssetView, Assets, Asset) {
return {
load: function (params) {
$(mv.sections.mainContainer).html(template);
var view1 = 'assetView',
id = params || '';
this.model = new Asset({
wid: params, //sets id on model
url: function(){
var url = 'api/assetDetail/' + params;
return url;
}
});
mv.i.views[view1] = new AssetView({
'el': '#asset-container',
model: asset
});
mv.i.views[view1].setup();
},
};
});
資產模型
define([], function() {
return Backbone.Model.extend({
defaults: {
id:''
},
initialize: function() {}
});
});
資產視圖
define([
'text!html/tplAsset.html',
'models/asset'
], function (template, Asset) {
return Backbone.View.extend({
el: '',
template: _.template(template),
initialize: function() {},
render: function() {
//var data = this.model.toJSON();
this.$el.html(this.template(data));
},
setup: function() {
var self = this;
$.when(self.model.fetch())
.done(function() {
//console.log(self.model.toJSON());
self.render();
})
.fail(function() {
console.log('request for data has failed');
});
},
events: {},
});
});
現在收到這些錯誤: ERR:路由錯誤錯誤: 「URL」 屬性或功能必須指定
at Backbone.View.extend.setup (/js/views/assetView.js:36:22)
$.when(self.model.fetch())
at Object.load (/js/presenters/asset.js:34:23)
mv.i.views[view1].setup();
我應該在哪裏打電話資產。取()?在Presenter之前或之後我調用setup()或在我的assetView setup()函數中? – Anthony
這取決於你在'setup()'函數中做了什麼 - 如果你需要從服務器獲取數據,那麼你可以執行setup函數。如果你不這樣做,那麼你可以把'asset.fetch()'放在assetView初始化函數中。 –
Gotcha。那麼在我的模型實例中調用該url,是否也會將返回的數據設置爲模型?如果不是,我該怎麼做? – Anthony