私はAngularで単純なページを作成しています。そこに作成する必要があるウォッチャーにはいくつか問題があります。まず第一に私のコレクションは、このようなものになります。角度:フィールドの変更に関するウォッチコレクションと計算を行います
$scope.products = [
{
"name": "Milk",
"price": 2,
"currency": "USD",
"exchangeRate": 1.5,
"localCurrencyPrice": 0
},
{
"name": "Bread",
"price": 1,
"currency": "EUR",
"exchangeRate": 1,
"localCurrencyPrice": 0
},
{
"name": "Skittles",
"price": 3,
"currency": "GBP",
"exchangeRate": 2,
"localCurrencyPrice": 0
},
{
"name": "Nesquik",
"price": 10,
"currency": "CHF",
"exchangeRate": 2.5,
"localCurrencyPrice": 0
}
]
私はそれぞれのフィールドと、コレクション内のオブジェクトのすべてのプロパティを示すことになるが、このような何かを見るために起こっている:https://plnkr.co/edit/hnuC1IAMZAQznDYP6tsQ?p=preview
として、私は項目を追加または削除できるので、配列の長さは起動時に定数ではないことがわかります。私はそれぞれの項目に "PRICE"と "EXCHANGERATE"フィールドのウォッチャーを作成したいと思います。ユーザーがその値を変更すると、それらは両方とも計算され、結果は "LOCALCURRENCYPRICE "フィールド。 /例えば。私は1.7に価格を変更する場合、最初の項目に「ミルク」、それは1.5のEXCHANGERATEでmupliedしなければならないと結果がlocalCurrencyPriceモデルとフィールド/に移入する必要があります。新しい商品を商品配列に追加するときは、その商品のウォッチャー「価格」と「exchangeRate」を追加する必要があります。
どのようにこれを行うことができますか? ありがとう!
私は 'ng-change'を使うことを考えていましたが、リストの実際の初期化に問題があると思っていました。なぜなら、それは解雇されないからです。何らかの理由でアイテムオブジェクト全体を変更しても、それは実行されません。ユーザーが入力と反復するときにのみng-changeが起動されるのは間違っていますか? – yep4u
あなたは初期化のためにng-initを持つことができます。私はそのために私のコードを更新します。 – aorfevre
'ng-init'は良い解決策です。ありがとうございます。それを試して、それが期待どおりに動作するかどうかを確認します:) – yep4u