[英]backbone passing parameters to a model url
在我的控制器中,我將名為“ url”的參數傳遞給視圖。 這已成功傳遞到初始化函數。 接下來,當我創建模型時,我想將相同的參數傳遞給模型以用作rooturl。
以下是我嘗試過的操作,但收到以下錯誤消息:
A "url" property or function must be specified
似乎參數沒有傳遞給模型(未定義),或者我沒有在模型中正確調用它。 我在這里做錯了什么?
注意:初始化函數視圖中的console.log(options.url)確認參數已成功從控制器傳遞到視圖,問題出在視圖到未定義模型的模型。
控制器:
var myview = new NewView({
url:"api/"
})**
視圖:
var myview = Backbone.Marionette.ItemView.extend({
initialize: function (options) {
this.url = options.url;
this.model.fetch();
},
model: new myModel({
url: this.url
}),
基於myModel:
var myModel = Backbone.Model.extend({
urlRoot: function(){ return this.get('url') }
});
您正在嘗試使用空網址獲取模型。
你打電話時:
initialize: function (options) {
this.url = options.url;
this.model.fetch();
}
在此處fetch
,您沒有該模型的網址。 因此,您可以執行以下操作:
initialize: function (options) {
this.url = options.url;
this.model.set({url: this.url});
this.model.fetch();
}
寫作時
model: new myModel({
url: this.url
}),
該視圖尚未初始化
您可以在視圖的initialize方法中實例化模型
initialize: function (options) {
this.url = options.url;
this.model = new myModel({
url: this.url
})
this.model.fetch();
},
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.