Question DEPRECATION: les besoins du contrôleur sont obsolètes, veuillez utiliser Ember.inject.controller () à la place


Vient de mettre à jour Ember à la v1.13.5 et a reçu cet avertissement:

DEPRECATION: les besoins du contrôleur sont obsolètes, veuillez utiliser Ember.inject.controller () à la place

Vous ne trouvez pas encore la documentation sur la façon d'écrire la nouvelle syntaxe. Toute suggestion sur la façon de résoudre cet avertissement serait appréciée.


10
2017-07-24 03:04


origine


Réponses:


Pour une raison quelconque, il est marqué comme une méthode privée dans le docs, pour le voir, vous devez cocher la case privée.

Il y a 2 façons de l'utiliser, avec et sans passer le nom d'un contrôleur

App.PostController = Ember.Controller.extend({
  posts: Ember.inject.controller()
});

Lorsque le nom du contrôleur n'est pas transmis, ember utilise le nom de la propriété pour le rechercher, par exemple posts: Ember.inject.controller('posts').

Vous ne spécifiez que le nom du contrôleur lorsque la propriété et le contrôleur ont des noms différents.

App.PostController = Ember.Controller.extend({
  myPosts: Ember.inject.controller('posts')
});

16
2017-07-24 07:20



Voici un exemple simple et ce billet de blog parle plus de l'évolution de l'injection manuelle à "Ember.inject"

export default Ember.Controller.extend({
  flashManager: Ember.inject.controller('flash-message'),

  actions: {
    upVote: function() {
      // Do some voting
      var flashManager = this.get('flashManager');
      flashManager.pushMessage('error', 'Your vote does not count');
    }
  }
}
});

6
2017-07-24 03:42