网址中的Ember日期时间

时间:2016-03-31 16:07:34

标签: ember.js ember-cli momentjs pikaday

我有一个属性控制器:

vFrom: window.moment.utc().format('YYYY-MM-DD'),

我在queryParams的{​​{1}}内的路线中使用此属性

ember-cli-pagination

我可以通过vFrom:{ refreshModel: true }, 更改此日期,我在控制器ember-pikaday中设置初始日期,然后在datepicker组件中使用它:

vFrom: window.moment.utc().format('YYYY-MM-DD')

然后在日期更改时触发模型刷新(这就是我想要的)。

问题是我最终在URL {{pikaday-input useUTC=true value=vFrom class="form-control"}} 中找到了一个日期变量,该变量在所有浏览器中都不起作用(并且在控制台中时刻警告我这一点)并最终破坏了我的应用程序。

如何更改最终在网址中的日期格式?

谢谢!

2 个答案:

答案 0 :(得分:0)

我用观察员解决了这个问题:

 datef: Ember.observer('vFrom', function(){
    var fromD = this.get('vFrom');
    if( fromD instanceof Date )
    {
      this.set('vFrom', window.moment.utc(fromD).format('YYYY-MM-DD'));
    }
  }),
  datet: Ember.observer('vTo', function(){
    var fromD = this.get('vTo');
    if( fromD instanceof Date )
    {
      this.set('vTo', window.moment.utc(fromD).format('YYYY-MM-DD'));
    }
  })

答案 1 :(得分:0)

另一种解决方案,我认为比使用观察者更好。

{{pikaday-input useUTC=true value=datef class="form-control"}}

queryParams: ['vFrom'],
datef: Ember.computed('vFrom', {
    get() {
        return moment(this.get('vFrom')).format();
    },
    set(key, value) {
        this.set('vFrom', moment(value).format('YYYY-MM-DD'));
        return value;
    }
})