Совместное использование служебной переменной между контроллерами - PullRequest
0 голосов
/ 07 августа 2020

У меня есть переменная в службе, которую я хочу разделить между двумя контроллерами. Насколько мне известно, службы 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
}

В чем проблема и как заставить ее работать?

...