2016-04-28 10 views
0

を変更します。は、どのように私はプロパティに反応することができ、私はこのようになりますクラス持っ

export class Transaction { 

    public status: string; 
    public nextStatus: string; 
    public previousStatus: string; 

    private getNextStatus(): string { 
     // ... 
    } 

    private getPreviousStatus(): string { 
     // ... 
    } 
} 

たびに、私は次のと以前の状態を再計算したいstatusプロパティの変更を。プロパティの変更をリッスンする方法はありますか?

オブジェクトをデータベースから取得してJSONから解析するため、関数を使用してステータスを設定することはできません。

currentTxn.setStatus(newTxn.status) 

をしてからnewTxnを捨てる:あなたはJSON /データベース呼び出しから新しいトランザクションを取得する場合、現在のトランザクションオブジェクトを持っていることについてどのように

public setStatus(newStatus: string) { 
    this.status = newStatus; 
    this.nextStatus = this.getNextStatus(); 
    this.previousStatus = this.getPreviousStatus(); 
} 
+1

これは実際にタイスクリプトの質問ではありません。実行時にはJavaScriptしかありません。これにはいくつかのAPIがありました([Object.prototype.watch()](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/watch)などですが、私が知っている限りでは、標準には何もありません。あなたはおそらくあなた自身で対処する必要があります。 'javascript'タグを追加してください。 –

答えて

0

を:だから、残念ながら、これは動作しないでしょう。

マルチスレッドを扱っている場合、別のスレッドでステータスが表示される可能性がありますが、prevStatusを読み込むと、これらの2つの値が一致しないことに注意してください。これを回避するには、setStatusにトランザクションメモリを使用させるか、Transactionのいずれかのフィールドへのアクセスをロックします。

関連する問題