Вы могли бы сделать что-то вроде этого:
Сначала убедитесь, что ваш контроллер расширяет `подмешать Ember.TargetActionSupport».
Ember.Controller.extend(Ember.TargetActionSupport,{
...
});
Это позволит вам запускать действия программно. Подробнее об этом: Ember.TargetActionSupport
Тогда вы бы действие точки входа, который содержит свой общий код и вызов, чтобы вызвать соответствующее действие:
Ember.Controller.extend(Ember.TargetActionSupport,{
actions: {
common: function (actionName) {
//Do common logic here
this.set('foo', 'bar');
//And then trigger the intended action
this.triggerAction({
action: actionName,
target: this
});
},
otherAction: function() {
//Do some more logic here
this.set('bar', 'baz');
}
}
});
Вы назвали бы это действие из шаблона, как это:
<button {{action 'common' 'otherAction'}}>Press Me</button>
Да Это (YII) –
Что вы подразумеваете под «созданием той же самой функции init() для каждого действия»? Я думал, что вы хотите запустить одну и ту же логику перед каждым действием, а это значит, что вам нужно будет создать его только один раз (и почему вы бы назвали его 'init()'?). Вы имеете в виду ** называть ** это от каждого действия? Это вряд ли кажется обременительным. –