如何在Ember View中引用父作用域

时间:2014-07-31 01:08:35

标签: javascript jquery ember.js scope

我是Ember的新手,这是一个简单的代码,让箭头按钮增加和减少amount属性的值:

export default Ember.View.extend({
    afterRenderEvent: function() {
        $('.spinner .increase').on('click', function() {
            this.incrementProperty('amount');
        });
        $('.spinner .decrese').on('click', function() {
            this.decrementProperty('amount');
        });

    },
    template: ProductView
});

问题是this没有引用Ember.View对象,但函数的范围,如何解决这个问题?

另外我认为使用jQuery操纵元素不是贪婪的方式。我应该为每个箭头按钮创建视图吗?

1 个答案:

答案 0 :(得分:-1)

维护对原始上下文的引用,然后在闭包中使用它应该可以解决您的问题:

export default Ember.View.extend({
    afterRenderEvent: function() {
        var self = this;
        $('.spinner .increase').on('click', function() {
            self.incrementProperty('amount');
        });
        $('.spinner .decrese').on('click', function() {
            self.decrementProperty('amount');
        });
    },
    template: ProductView
});