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 initialisierenimport 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