У меня есть переменная в службе, которую я хочу разделить между двумя контроллерами. Насколько мне известно, службы Ember являются одноэлементными.
Я создал служебный файл: app/services/data-manipulation.js
:
import Ember from "ember";
export default Ember.Service.extend({
init() {
console.log('initService');
},
shouldManipulate: false
});
В первом контроллере, который вызывается на один экран перед вторым контроллером:
dataManipulation: Ember.inject.service(),
init() {
this.updateManipulate();
},
updateManipulate: function() {
this.set("dataManipulation.shouldManipulate", true);
var currentValue = this.get("dataManipulation.shouldManipulate");
console.log(currentValue); // log true as expected
}
Во втором контроллере:
dataManipulation: Ember.inject.service(),
init() {
// it inits the service again so 'initService' is logged again.
var currentValue = this.get("dataManipulation.shouldManipulate");
console.log(currentValue); // log undefined
}
В чем проблема и как заставить ее работать?