2013-10-17 11 views
10

Beispiel jsbin wiederzuverwenden: http://jsbin.com/ICoLOgO/4/editember: beste Weg, Controller-Aktionen auf Mixins

Wenn ich eine mixin haben, die eine Aktion bietet, mit Ember 1,0-rc.5 die Aktion wäre ohne Warnungen aufgerufen werden. Ein Upgrade auf Ember 1.0 final verursacht eine deprecation Warnung anzeigen:

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

Gibt es einen einfacheren Weg, einzelne Aktionen in einer Aktionskarte zu belichten, ohne Function.apply zu benutzen?

Antwort

26

Ich habe einfach die gemeinsamen Aktionen in den actions Hash auf dem Mixin, und Ember sorgte für die ordnungsgemäße Zusammenführung der Aktionen Hashes mit allen Controllern, die das Mixin erweitern.

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 
    } 
}); 
+0

Danke so so sehr! Du hast meinen Nachmittag gerettet :) – alem0lars