申し訳ありませんので、私はajax呼び出しを行い、一連のメッセージのリストを受け取ります。メッセージは処理されるか完了し、変数isProcessedによってマークされます。ここで、0に等しい場合はそれはなく、1の場合にはメッセージが処理されます。角4:別の変数に依存するコンポーネント変数
とにかく、私は受け取ったメッセージを 'messageArray'と呼ばれるコンポーネントの1つの変数に設定しています...そして、処理済みで完了した2つの別々の変数があります。これらの関数は、基本的にmessageArrayのフィルタと同じです。
しかし、私の質問は、なぜこれらの変数がmessageArray変数が変更されたときに変更されないのですか。これを回避するにはどうすればよいですか。これは見た目です。
messageArray: Array<any> = []
processing = this.messageArray.filter((message) => {
return message.isProcessed === 0
});
completed = this.messageArray.filter((message) => {
return message.isProcessed === 1
});
ありがとうございました!
編集: コンポーネントが起動すると、上記の例に示すように、コンポーネントは最初は空のままですが、サービスですぐにAJAX呼び出しを行ってユーザーのメッセージを取得し、その結果をmessageArrayそうです。
getMessages(info) {
let messageJSON = JSON.parse(info);
this.messageArray = messageJSON.m
}
だから、理想的には、新しいコンテンツでMessageArrayを設定した後、それはまた、配列の「処理」を変更する必要があり、彼らはちょうどその配列のバージョンをフィルタリングしているとして、「完了」。
Edit2: これより簡単な例があります。私には2つの変数があります。 1つは 'x'で、もう1つはdoubleXと呼ばれるdoubleX = x * 2です。変数xが変更されたときに必要なのは、 'x'の新しい値を使うためにこの変数 'doubleX'が必要です。
変更検出の戦略を調べてください –
どのようにajaxの結果を取得しますか?あなたはそれを受け取った後に何をしますか? –
私はサービスを持っています、私のコンポーネントはサービスに電話をかけ、その結果を受け取ります。とにかくそれについて考える別の方法は、私が2つの変数、1つは番号と呼ばれ、もう1つは 'numberPlus100'と呼ばれる変数があるかどうかです。数値が変わるたびに変更するには、変数 'numberPlus100'が必要です。 – josh35767