私は、次の入力フィールドがあります。なぜmin属性がngChangeを呼び出すのですか?
<input type="number"
class="menu-control validate"
style="width: 50px;"
ng-disabled="!ctrl.editable()"
min="1"
ng-change="ctrl.updateBookingPriceRequest()"
ng-model-options="{ updateOn: 'default blur', debounce: { 'default': 2000, 'blur': 0 }}"
ng-model="extra.quantity" />
私の問題は分ディレクティブです。それがある間、入力は何も変更されていない状態でng-changeを繰り返し呼び出すようになりました(私は変更時にajax呼び出しを実行していたためにうまくいかなかった)。私が分を取り除くとうまくいきますし、最大で同じ問題はありません。 モデルが最初にminより上か下かどうかは問題ではないようです。
私はできない何かを誰かが見ることができますか?
編集:私は私の変更機能は何もしない作ってみました、それがなければなりませんので、それが原因私のコードに、問題を停止し
。しかし、私が理解していないのは、それが分なしでうまくいく理由です!
this.updateBookingPriceRequest = function() {
_this.prices.getBookingPrice(_this.bookingPrice).then(function (response) {
if (response.successful) {
_this.bookingPrice = response.data;
_this.bookingPrice.mooringExtras.bookingExtras.forEach(function (extra) {
var feature = _this.features.filter(function (f) { return f.featureId === extra.mooringFeatureId; })[0];
extra.unitOfMeasureId = feature.unitOfMeasureId;
extra.pricedQty = feature.pricedQuantity;
extra.pricingType = feature.pricingType;
});
if (_this.bookingPrice.mooringDiscounts) {
_this.bookingPrice.mooringDiscounts.forEach(function (discount) {
discount.discountName = _this.harborDiscounts.filter(function (x) { return x.id === discount.discountModelId; })[0].name;
});
}
}
else
_this.Error.showErrorMessage('Error getting booking price: ' + response.message);
});
};
モデルがプロパティである "余分な"オブジェクトは関数内で変更されますが、 "量"プロパティは変わりません。これにより、変更が引き起こされる可能性がありますか?
オブジェクトが定義されている方法を示すために編集(valepuによってコメントを参照してください):
余分なオブジェクト(複数可)の配列に(私の入力フィールドがリピータ内でされているが、私の現在のテストに一つだけがあります配列内のオブジェクト)。これはmooringExtrasというプロパティで定義されています。これは、ng-changeが呼び出されたときにhttp要求によって更新される、bookingPriceオブジェクトのプロパティです(コード参照)。私はそれが複雑になることを知って、それをより簡単にする方法を知らないために私の謝罪。
余分なオブジェクトには、入力のモデルである数量である数量のプロパティが含まれています。ここで
は、余分なオブジェクトのJSONです:
{"id":401,"bookableFeatureId":13,"mooringFeatureId":4,"featureName":"Wi-fi","bookingId":1104,"booked":true,"price":100.00,"totalAmount":300.00,"days":8,"quantity":3,"currencyUnit":"SEK","created":1460542055177}
NG-変更がbookingPriceオブジェクトが変更されると呼ばれるたびに、しかし、extra.quantityの値は同じまま。
に動作します私が持ったときに角度が彼のサイクルをやっていると思います'min'属性です。サイクルは、通常、Angularが変更を検出した後、それが 'change'関数を起動することを意味します。多分フィドルで再現できますか? – Michelangelo
あなたの分は指令ですか? – Lulylulu
あなたの状況をエミュレートするはずのplunkrを作成しましたが、それはFirefox上でうまく動作しますhttp://plnkr.co/edit/XyEyGTvuYKyz1GGmWjuP?p=preview(またminは標準のHTMLであり、そのような名前のディレクティブを持っています) – valepu