Ember.js Quelle est la différence entre setupController et déclarer un & lt; Name & gt; Controller
Je vois beaucoup de confusion dans les exemples Ember.js tutoriels officiels.
Un exemple que je n'aime vraiment pas:
App.ApplicationRoute = Ember.Route.extend({
setupController: function(controller) {
controller.set('title', "Hello world!");
}
});
App.ApplicationController = Ember.Controller.extend({
appName: 'My First Example'
});
Maintenant que je comprends que je pouvais l'avoir écrit comme ça à la place:
App.ApplicationController = Ember.Controller.extend({
appName: 'My First Example',
title: 'Hello world!'
});
Et l'élimination de cette setupController de la route.
Quel est le but/avantage de l'utilisation de setupController?
source d'informationauteur Canttouchit
Vous devez vous connecter pour publier un commentaire.
setupController
est principalement pour la mise en place d'un contrôleur de contexte dynamique. Dans votre exemple, si le titre est toujours va être "Hello world!" c'est bien de le mettre dans la déclaration de classe.Par défaut,
setupController
va définir lemodel
propriété decontroller
à la valeur retournée parmodel
crochet de la route.Vous pourriez, vous aussi, par exemple, définir le modèle d'un autre contrôleur, ou définir certains contrôleur initiale de l'état qui dépend du modèle.
Par exemple, supposons que vous disposez des éléments suivants:
Modèle:
Et puis, vous décidez qu'il serait agréable pour activer le mode d'édition par défaut pour les postes avec
autoEdit
égal àtrue
. Vous aurez probablement envie de faire de la route (depuis le contrôleur, lorsqu'il est instancié, ne sait rien à propos du modèle):Donc, fondamentalement, c'est pour "initialiser" le contrôleur (paramètre du modèle et de l'état par défaut).