在我的控制器中,我将一个名为“url”的参数传递给视图。这成功传递给initialize函数。接下来,当我创建模型时,我想将相同的参数传递给模型以用作rooturl。
以下是我尝试过但我收到以下错误消息:
A "url" property or function must be specified
这似乎没有传递给模型的参数(未定义)或者我没有在模型中正确调用它。 我在这里做错了什么?
注意: console.log(options.url)在initialize函数视图中确认参数已成功从控制器传递到视图,问题是从视图到模型所在的位置未定义。
控制器:
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') }
});
答案 0 :(得分:5)
您正在尝试使用空网址获取模型。
致电时:
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();
}
答案 1 :(得分:0)
写作时
model: new myModel({
url: this.url
}),
视图尚未初始化
您可以在视图的初始化方法
中实例化模型initialize: function (options) {
this.url = options.url;
this.model = new myModel({
url: this.url
})
this.model.fetch();
},