0

在新的 EmberRC1 版本中,我们似乎无法从创建的对象中调用超类方法。我有一些标准的 mixin 和视图,用于创建或扩展到其他一些对象。我有一些方法被覆盖,但我仍然需要执行我们可以在以前的版本中使用this._super(). 但是在较新的版本中,当我创建一个对象时,这不会发生。

    window.App = Ember.Application.create();

App.Router.map(function(){
    this.resource("users");
});

App.UsersView = Ember.ContainerView.extend({
    init : function(){
        this._super();
        this.pushObject(App.TestView.create({
            didInsertElement : function() {
               this.$().append(' <br><h4>Appended at Object</h4> ');
            }
        }))
    }
});

App.TestView=Ember.View.extend({
    templateName:'test',
    didInsertElement : function() {
       this.$().append(' <br><h4>Appended at Class</h4> ');
    }
});

那么这部分是完全删除还是我们可以通过其他方式实现这个超级调用?

要了解我的问题是jsfiddle

PS:我知道我可以拥有需要使用其他方法名执行的代码并调用相同的方法。但是,如果我对此有解决方案,那就太好了。

4

1 回答 1

1

您仍然可以从 init 方法调用 this._super() ,它将调用父级。已删除的是在对象上调用 create 并传入 init 方法。有一个 createWithMixin 方法仍然允许该功能。

这里有一篇关于这个功能的非常详细的帖子:

ember 中 .create() 和 .createWithMixins() 的区别

于 2013-03-15T17:00:58.530 回答