2016-07-06 6 views
0

У меня проблемы с доджо-аспект и как он ведет себя с наследованием.Наследование наследования додзё

У меня есть класс, называемый child1, а другой класс - child2. Оба класса наследуют от родителя.

Child1:

return declare("child1", [parent], ... 

Child2:

return declare("child2", [parent], ... 

Реализация ребенка1 и ребенка2 очень разные. Родитель имеет метод, который child1 потребности в аспекте к:

this.own(aspect.before(this, "_onChange", lang.hitch(this, "_onRowSelected"), true)); 

Все отлично работает с child2 до child1 не называется. В этот момент, когда вызывается метод _onChange из родителя, выполняется функция child1._onRowSelected .... независимо от того, откуда был вызван вызов.

Я бы подумал, что в аспект будет только объект, который создал аспектный вызов в child1, и не повлияет на child2 вообще.

Единственное, что я могу придумать, это то, что создание экземпляра child1 и child2 выполняется в шаблоне HTML.

ответ

1

Если вы используете наследование, то почему вы используете aspect? В этом случае это не обязательно.

В Child1, просто создать метод _onChange так:

_onChange: function() { 
    this._onRowSelected(); 
    this.inherited(arguments); 
} 

Это будет достичь того же, не нуждаются в aspect

Смежные вопросы