Ember: лучший способ повторно использовать действия контроллера на mixins - программирование
Подтвердить что ты не робот

Ember: лучший способ повторно использовать действия контроллера на mixins

Пример jsbin: http://jsbin.com/ICoLOgO/4/edit

Если у меня есть mixin, который обеспечивает действие, с ember 1.0-rc.5 действие будет вызываться без предупреждений. Обновление до версии ember 1.0 приводит к предупреждению об отказе:

Action handlers implemented directly on controllers are deprecated in favor of action handlers on an `actions` object

Есть ли более простой способ разоблачить отдельные действия в карте действий без необходимости использования функции.

4b9b3361

Ответ 1

Я просто поместил общие действия в хеш actions на mixin, и Ember позаботился о правильном слиянии хэшей действий с любыми контроллерами, которые расширяют mixin.

App.PaginatedListController = Ember.Mixin.create({
  queryParams: ['page'],
  page: 0,

  actions: {
    nextPage: function() {
      this.incrementProperty('page');
    },

    previousPage: function() {
      this.decrementProperty('page');
    },
  }
});

App.PostsController = Ember.ArrayController.extend(App.PaginatedListController, {
  actions: {
    // controller specific actions here
  }
});