2013-12-21 5 views
6

計算されたプロパティを現在時刻(タイムスタンプで使用する)を観測する方法はありますか?私のコントローラで、私はこのような何かを見ている可能性があります方法例えばEmberは現在の時刻を観測するプロパティを計算します

formatLastUpdated:function() { 
    return moment(this.get("model.update_ts")).fromNow(); 
}.property("model.update_ts", "date.now?"), 
+0

...プロパティが変更され、その再レンダリングトリガーたとの見方を伝えます達成するために?あなたは絶えず変化しているので、時間を観察したくない。これを行うことが可能だった場合、あなたのjavascriptはそのプロパティを更新するだけの連続ループで立ち往生し、何か他のことをするのに十分な時間(意図しない)はありません。私はあなたが望む結果が何であるかを説明すれば、よりよい方法があると思います。 – Scott

+0

ええ、ちょうど私のlasが現在の状態を維持するために相対的な(moment.jsを使用して)更新されたタイムスタンプを探しています。私はキングピンの答えを試してみましょう – Ben

答えて

7

ember-timeリポジトリは、あなたがやろうとしているものの良い例が含まれています。

これらは、ハンドルバーヘルパーを介してカスタムビューを使用します。ビューはEmber.run.laterを経由して、すべてが第二と呼ばれるtick機能を設定します:

didInsertElement: function() { 
    this.tick(); 
}, 
tick: function() { 
    var nextTick = Ember.run.later(this, function() { 
    this.notifyPropertyChange('value'); 
    this.tick(); 
    }, 1000); 
    this.set('nextTick', nextTick); 
}, 
willDestroyElement: function() { 
    var nextTick = this.get('nextTick'); 
    Ember.run.cancel(nextTick); 
} 

notifyPropertyChange呼び出しは、あなたが何をしようとしている

1

は完全にスコットに同意します。つまり、グローバルプロパティを作成して1分程度で最新の時間に更新することで、時間のサブセットで作業することができます。

私はアプリケーションコントローラに保存し、他のコントローラのニーズを使用します。ここに例があります。

http://emberjs.jsbin.com/Elibefem/1/edit

関連する問題