骨干事件上下文不保持当前状态

时间:2013-07-15 16:03:01

标签: backbone.js require

我使用骨干事件将一个上​​下文(一个视图对象)绑定到一个事件处理程序,这有点工作,但问题是在initialize方法中设置的所有propreties似乎都跟随事件的上下文被触发了。下面的代码说明了这个问题:

   define(['backbone'], function( Backbone ) {

        var PageView = Backbone.View.extend({

            /* Globals */
            pageExist: false,

            initialize: function( options ) {
                var self = this;
                self.pageExist = true;

                // _mediator is passed during instantition of the view
                // I've removed the code here as it's not relevant for this problem
                self._mediator.on("pin:add", self._pinAddCB, self);

                // Using bindAll seems a little bit better as the context now carries the aditional method that i added on this view ( like _pinAddCB ) 
                _.bindAll();

            },


            _pinAddCB: function( ) {
                console.log(this.pageExist ) // FALSE ??
            }
        });

        return PageView;
    });

关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:0)

您是否尝试过示例中的代码如何工作?因为它应该正常工作。

  1. _.bindAll();会导致最新版本的下划线出错。
  2. 或许pageExist可能会被其他方法修改。