2012-02-13 7 views
1

Ember가 내 프로젝트 중 하나에서 사용하기 위해 MongoDB에서 제공 한 ObjectID에서 날짜 정보를 추출해야했습니다.자바 스크립트의 ObjectID 날짜

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

나는 그와 함께 행복 해요, 그냥 그것을 할 수있는 더 좋은 방법은 .. 어떤 생각이 있는지 알고 싶어 : 나는 울부 짖는 소리로 계산 된 속성을 갔다?

감사합니다.

+0

전산화 속성이 아마 여기에 가장 좋은 것입니다 것입니다. –

+0

'Ember.computed' 비트가 아무 것도하지 않는지 확실하지 않습니다. 내 계산 된 속성은'foo : function() {...} .property ('_ id')'와 같이 잘 작동합니다. –

+0

프로토 타입 확장이 꺼져있는 경우'Ember.computed' 비트가 필요합니다. 그들이 켜져 있다면 상처를주지는 않지만 반드시 필요한 것은 아닙니다. –

답변

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() 
+1

이제 'cacheable'이 기본값입니다. –