2013-09-02 2 views
0

J'ai créé le code exemple suivant:Comment mettre à jour les propriétés d'un autre contrôleur et mettre sa valeur à jour?

http://ninjy.com:8080/ember/How%20to%20set%20a%20lower%20controller%27s%20variables/#/blah

Lorsque vous cliquez sur le bouton, il est censé changer le texte basé sur un modèle. Il le fait, mais le changement n'est pas mis à jour à l'écran. Il fonctionne correctement lorsque vous échangez la valeur et l'action: lorsque le bouton est en mode Blah (sous la ligne) et la valeur du modèle dans Application (au-dessus de la ligne), la valeur est mise à jour à l'écran. Est-ce que quelqu'un peut expliquer pourquoi cela se produit de cette façon, et comment mettre à jour la valeur correctement?

Répondre

1

Vous devez fournir des noms en minuscule, par ex. blah au lieu de Blah quand besoin d'automates:

App.ApplicationController = Ember.ObjectController.extend({ 
    needs: ['blah'], 
    act: function() { 
    console.log('act'); 
    var ctrl = this.get('controllers.blah'); 
    ctrl.set('myvalue', 'and this is the replacement text'); 
    } 
}); 

Working jsbin.

Hope it helps.

+1

La modification en minuscules a en effet résolu mon problème. Ember pourrait vraiment faire avec un vérificateur statique pour donner des conseils pour les débutants. Je vous remercie. :) – dgbonomo

+0

Par curiosité, pouvez-vous élaborer sur le bon formulaire à utiliser pour des routes plus complexes, comme pour un ExampleListController (/ #/example/list)? – dgbonomo

Questions connexes