0

私はコントローラーを持っています:

            var layout = new LayoutView();
            App.holder1.show(layout);
            var my_view = new myView({id: options})
            layout.holder1.show();

            console.log(my_view.model.get('name')) <---- I want this

私はしたいのですget my_view.model.get('name')が、問題は私が得ることundefinedです。私はconsole.logモデルを持っていて、問題なく設定されていますが、取得しようとしたときにまだ完全にロードされていないためだと思います。

これは私の現在のthisViewです:

  var thisView = Backbone.Marionette.ItemView.extend({
            initialize: function (options) {
                this.model.fetch();
            },
            model: new myModel(),
            template: testExampleTemplate,
        });
        return thisView;
4

3 に答える 3

2

成功のコールバック関数の後にのみ、オブジェクトが設定されます。

initialize: function (options) {
  this.model.fetch({
    success: function(model){
      console.log(model.get('name'));
    };
  });
}
于 2013-11-14T23:32:32.007 に答える
1

これにアプローチするにはいくつかの方法があります。まず、ビュー内のモデルからの変更イベントをリッスンし、変更イベントが発生したときに必要なことを何でも実行できます。何があっても何かをする必要がある場合は、いくつかのオプションがあります。ビューがリッスンするイベントを発生させ、それに応答して何かを実行するモデルの parse メソッドの実装を作成するか、成功のコールバックで何かを行うことができます。 fetch メソッド自体の場合 (fetch のオプションとして渡されます)。どのアプローチがあなたの状況に適しているかをよりよく理解できれば、例を提供できます。

于 2013-11-14T23:49:26.103 に答える