2016-03-23 7 views
0

Ich versuche, einen Test-App von Ember 1,0 bis Ember 2,0Ember 2.0: Warum ist meine Handlung nicht in Route ausgelöst

Ich schrieb eine Index-Vorlage, mit einem Aktionsereignis ‚Alarm‘

<table id="t01"> 
     <tr> 
     <th>Company Name</th> 
     </tr> 
     {{#each model as |item|}} 
     <tr> 
      <td {{action "alert" "alert form company name" }}>{{item.name}}</td> 
     </tr> 
     {{/each}} 
</table> 
zu bewegen

ich schrieb einen application.js Controller die Eigenschaften

import Ember from 'ember'; 
export default Ember.Controller.extend({ 
    className:"hide", 
    message: "" 
}); 

ich habe auch eine index.js Controller ausführen gewisse Logik an der Index Controller-Ebene

zu initialisieren
import Ember from 'ember'; 
export default Ember.Controller.extend({ 
    actions:{ 
    alert: function(){ 
     console.log("do some controller level processing"); 
     return true; 
    } 
    } 
}); 

und schließlich habe ich ein Strecken/application.js mit einer ‚Alarm‘ definiert Ereignisbehandlungsroutine, die Anwendungssteuerungseigenschaften (classname, message)

import Ember from 'ember'; 
export default Ember.Route.extend({ 
    actions:{ 
    alert: function(message){ 
     var applicationController = this.controllerFor("application"); 
     applicationController.set("className","alert"); 
     applicationController.set("message",message); 
     Ember.run.later(function(){ 
     applicationController.set("className","hide"); 
     },2000); 
    } 
    } 
}); 

und ein Strecken/index.js zu aktualisieren dient die Modelldaten

aber es funktioniert nicht richtig in Ember.js 2.0 (läuft 2.4.2) und es gibt keine Fehlermeldung in der Konsole, erhalte ich nur die Index-Controller-Konsole Logausgabe

Es scheint, dass die Alarmaktion in den routes/application.js ausgelöst wird, die Nachricht korrekt erhalten, aber die Eigenschaften sind nicht festgelegt ... kann ich den Anwendungscontroller bekommen? mit

var applicationController = this.controllerFor("application"); 

Dank für Feedback

Antwort

0

gelöst

die Anwendungsvorlage nicht die richtige Klasse hat („classname“ -Attribut in dem div ... so wurde die Alarmaktion korrekt behandelt, aber keine Änderungen passieren in der Vorlage ..

Verwandte Themen