質問

私のコントローラーでは、ビューに '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();
    },
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top