1

テンプレートに追加の変数、つまりモデルに含まれていない変数を渡したいと思います。これらは基本的に、画面が次にユーザーにどのように表示されるかなどの表示パラメーターです。データベースに保存する必要はありません。

私はこれを試しましたが、うまくいかないようです:

render: function () {
         this.extra_list = _.shuffle(this.extra_list);
         jQuery.extend(this.model, this.extra_list);
         this.$el.html(this.template(this.model.toJSON()));..
         return this;
      }

テンプレートで extra_list を参照すると、変数が定義されていないというエラーが表示されます。私は何が欠けていますか?

4

1 に答える 1

3

model.toJSON()プロパティではなく、モデルの属性を返します。拡張機能はこれらのプロパティをモデルに直接追加しているため、出力をtoJSONテンプレートに渡すと未定義になります。

モデルの属性に追加extra_listするか (これはやりたくないように思えます)、 の出力を結合toJSONextra_listてテンプレートに渡します。

編集:コメントに記載されているように、_.extendextra_list をモデルの属性と「マージ」するために使用できます。

  render: function () {
    this.extra_list = _.shuffle(this.extra_list); 

    var data = _.extend(this.model.toJSON(), this.extra_list);

    this.$el.html(this.template(data));
    return this;
  }
于 2013-09-10T00:12:37.743 に答える