モデルのURLへのバックボーンのパラメータを渡します
-
20-12-2019 - |
質問
私のコントローラーでは、ビューに 'URL'というパラメータを渡します。これは初期化関数に正常に渡されます。次に私のモデルを作成するとき、私は同じパラメータをrooturlとして使用するモデルに渡したいです。
は私が試したものですが、私は次のエラーメッセージを得ました:
A "url" property or function must be specified
.
これは、パラメータがモデル(未定義)に渡されていない、またはモデル内で正しく呼ばれていないようです。私がここで間違っていること?
注: console.log(optionsurl)初期化機能ビューでパラメータが正常に渡されたことを確認すると、問題はビューからのビューへのものです。未定義
コントローラ:
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') }
});
. 解決
あなたは空のURLを使ってモデルを取得しようとしています。
電話:
initialize: function (options) {
this.url = options.url;
this.model.fetch();
}
.
fetch
ここでは、モデルのURLを持っていません。だから、あなたはできる:
initialize: function (options) {
this.url = options.url;
this.model.set({url: this.url});
this.model.fetch();
}
. 他のヒント
を書くとき
model: new myModel({
url: this.url
}),
.
ビューはまだ初期化されていない
ビューの初期化方法
でモデルをインスタンス化できます。initialize: function (options) {
this.url = options.url;
this.model = new myModel({
url: this.url
})
this.model.fetch();
},
. 所属していません StackOverflow