0

1 つは親テンプレートで、もう 1 つはサブビューを含むテンプレートです。私の最初の親ビューはバックボーンのビューを拡張し、そのレンダリング メソッドは次のようになります

render: function () {
  this.$el.append(templates["template-parent-test"](this.model));
  return this;
}

この親ビューにはボタンがあります。現在、ビューにデータを入力するために使用しているボタン。基本的にこれを行います:

   populateView: function () {
   // create some dummy test data to match the web service
     _.each(myModel, function (theModel) {
         var testView = new childView({ model: theModel });
         this.$('div-in-parent-view').append(testView.render().$el);
     });
   }

このバックボーン ビューは Backbone.View を拡張し、そのレンダリング メソッドは次のようになります。

    render: function () {
        console.log("rendering child view");
        this.$el.html(this.template({ data: this.model.toJSON() }));

        return this;
    }

したがって、これは機能します。しかし、ボタンを押して親ビューを作成したくありません。初めて表示するときにデータを入力し、実際に行うべきことをボタンに実行させたいと思います。親ビューの render 関数から this.populateView() を呼び出すことができると思いますが、実際には何もレンダリングされません。しかし、ボタン イベントで this.populateView() を実行すると、レンダリングされます。なぜここに違いがあるのですか?ありがとう。

4

1 に答える 1