Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 余烬服务-为应用程序创建默认设置_Ember.js - Fatal编程技术网

Ember.js 余烬服务-为应用程序创建默认设置

Ember.js 余烬服务-为应用程序创建默认设置,ember.js,Ember.js,我的应用程序有很多报告,我有dateBegin和dateEnd 理想的行为是: 应用程序首次加载,dateBegin=月份开始(2001年6月)/dateEnd=今天(2011年6月) 当用户更改日期(比如mai-01/mai-31)时,所有控制器都会获得新的日期 我现在拥有的代码: //app/services/defaults.js 从“余烬”导入余烬; 导出默认的Ember.Service.extend({ init:函数(){ 这个; var dateEnd=moment().格式

我的应用程序有很多报告,我有dateBegindateEnd

理想的行为是:

  • 应用程序首次加载,dateBegin=月份开始(2001年6月)/dateEnd=今天(2011年6月)
  • 当用户更改日期(比如mai-01/mai-31)时,所有控制器都会获得新的日期
我现在拥有的代码:

//app/services/defaults.js
从“余烬”导入余烬;
导出默认的Ember.Service.extend({
init:函数(){
这个;
var dateEnd=moment().格式('YYYY-MM-DD');
var dateBegin=moment().startOf('month').format('YYYY-MM-DD');
如果(!this.get('dateEnd')){this.set('dateEnd',dateEnd);}
如果(!this.get('dateBegin'){this.set('dateBegin',dateBegin}
}
});

您可以创建一个单例对象来保存日期:

App.SelectedDates = Ember.Object.extend({
  dateBegin: null,
  dateEnd: null // or whatever value you want...
});
然后,将该对象注入所有控制器,如下所示:

Ember.Application.initializer({
  name: 'register-global-dates',
  initialize: function(container,app) {
    app.register('my:globalDate', App.SelectedDates.create(), {
      singleton: true,
      instantiate: false
    });
    app.inject('controller', 'dateglobal', 'my:globalDate');
  }
});
现在,在控制器中,您可以执行以下操作:

this.dateglobal.set('dateBegin', '2015/01/12');
它在所有控制器中都是相同的对象


我希望我正确理解了您的问题,这就是解决方案…

控制器1、2来自不同的路线?两者都使用查询参数扩展了Ember.Controller,用于混合报表?我认为问题在于对具有不同路由的不同控制器使用相同的查询参数。你的路由器文件看起来怎么样?嗨,是的,它们是不同的路由。Route1/Controller1,Route2/Controller2。我为查询参数添加了另一个带有route mixim的代码段(我必须在每个路由上定义modelName)。我只是在我想按日期筛选的所有路由/控制器上导入此混音。嗨,史蒂夫,谢谢。。。但它不起作用。我已经开始注射了,如中介绍的。看起来控制器在引导时已经有了初始属性,并且在您实例化它之前不会更改。