Javascript 如何在Ember视图中引用父范围

Javascript 如何在Ember视图中引用父范围,javascript,jquery,ember.js,scope,Javascript,Jquery,Ember.js,Scope,我是Ember的新手,这里有一个简单的代码,可以让箭头按钮增减amountproperty的值: export default Ember.View.extend({ afterRenderEvent: function() { $('.spinner .increase').on('click', function() { this.incrementProperty('amount'); }); $('.spin

我是Ember的新手,这里有一个简单的代码,可以让箭头按钮增减
amount
property的值:

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
});
问题是
这个
不是指Ember.View对象,而是指函数的范围,如何解决这个问题


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

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

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
});

谢谢你的快速回复。你的解决方案有效!你认为这样做对吗?或者为视图本身设置一个on事件?我不熟悉ember,抱歉:/如果它是纯jquery,我肯定会这样做,维护对原始上下文的引用也是常见的做法。正确的答案,在ember中这样做的方式不正确(并且无法清理事件处理程序,这不是您的错,但ember方式会),如果你将其更新为使用actions,我会很高兴地取消我的否决票。如果你有更好的答案,请自己发布,我将向上投票。我的并不像你说的那样不正确,所以没必要投否决票。。。