来自Javascript中的ObjectID的日期

时间:2012-02-13 17:55:47

标签: mongodb ember.js

我正在评估Ember在我的一个项目中使用,需要从MongoDB提供的ObjectID中提取Date信息。我带着一个计算属性如下:

created_at: Ember.computed(function() {
    var objid = this.get('_id');
    return new Date(parseInt(objid.substring(0,8), 16)*1000);
  }).property('_id')

我对此感到高兴,只是想知道是否有更好的方法去做..有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

你肯定是在正确的轨道上。正如Martin在评论中所建议的那样,你不需要在函数前面加上Ember.computed()。 property()调用将为您处理。通过执行这两种操作,您将使用计算属性方法创建计算属性方法,这似乎可能会导致问题。

还要考虑将属性标记为cacheable(),这将导致函数仅在_id更改时执行一次,而不是在调用方法时执行。

这似乎是理想的方法:

created_at: function() {
  var objid = this.get('_id');
  return new Date(parseInt(objid.substring(0,8), 16)*1000);
}.property('_id').cacheable()