Вызов метода Mixin при переопределении

У меня есть миксин в моем контроллере, который имеет определенное действие. Мне нужно переопределить это действие, сделать некоторые вещи, а затем вызвать исходное действие, предоставленное Mixin.

Как я могу это сделать?

этого._super (), похоже, не работает в этом случае (что имеет смысл, поскольку он должен называть реализацию суперкласса, а не Mixin).

1 ответов


для того, чтобы позвонить this._super С Ember.run.next попробуйте следующее,

http://emberjs.jsbin.com/docig/3/edit

App.MyCustomMixin = Ember.Mixin.create({
  testFunc:function(){
    alert('original mixin testFunc');
  },
  actions:{
    testAction:function(){
      alert('original mixin testAction');
    }
  }
});

App.IndexController = Ember.Controller.extend(App.MyCustomMixin,{
  testFunc:function(){
    alert('overriden mixin testFunc');

    var orig_func = this._super;
    Ember.run.next(function(){
      orig_func();
    });
  },
  actions:{
    test:function(){
      this.testFunc();
    },
    testAction:function(){
      alert('overriden mixin testAction');
      var orig_func = this._super;
      Ember.run.next(function(){
        orig_func();
      });
    }
  }
});