我正在评估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')
我对此感到高兴,只是想知道是否有更好的方法去做..有什么想法吗?
谢谢!
答案 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()