我有一个使用vuejs2的项目 这是html代码
<input @keyup='check_item_offer(arrayresult.id, arrayresult.unit_id, arrayresult.qty, key, 16)' v-model='arrayresult.qty' />
这是vuejs2方法中的check_item_offer
代码
check_item_offer:function(item_id ,unit_id, quantity, key, tax) {
this.taxss = tax;
$.ajax({
type:'POST',
url: path + 'check_item_offer',
data: {
item_id: item_id,
unit_id: unit_id,
quantity: quantity
},
success:(data) => {
console.log(data);
if(data != '') {
$.ajax({
type:'POST',
url: path + 'get_item_data',
data: {
item_id: item_id,
unit_id: unit_id
},
success:(datas) => {
data['item_sale_offer_detale_price'] = data['item_sale_offer_detale_price'] * (1 + this.taxss / 100);
datas = datas * (1 + this.taxss / 100);
var qty = this.arrayresults[key].qty;
var old_price = datas;
var offer_quantity = data['item_sale_offer_detale_quantity'];
var remain = this.arrayresults[key].qty % data['item_sale_offer_detale_quantity'];
var new_price = data['item_sale_offer_detale_price'];
var item_with_new_price_quantity = qty - remain;
var price_with_offers = (item_with_new_price_quantity / offer_quantity) * new_price;
var price_without_offers = old_price * remain;
var total_price = (price_with_offers + price_without_offers) / qty;
this.arrayresults[key].item_smallest_unit_selling_price = total_price;
this.arrayresults[key].items_quantity_selling_price = total_price;
}
});
}
}
});
}
一切正常
如果我使用键盘更改arrayresult.qty
,它将正常工作
但是,如果我使用ajax调用arrayresult.qty
的另一种方式来更改keyup
,则直到我进入输入并按任意键之前,它不会运行check_item_offer
即使我更改了check_item_offer
甚至ajax调用,也如何运行arrayresult.qty
?
谢谢
答案 0 :(得分:1)
如果您要触发函数 check_item_offer ,请将其设置为keyup事件以更改v模型 arrayresult.qty 中的值,以编程方式 ajax调用,那么您需要像这样设置v-model变量的 watch
watch:{
'arrayresult.qty'(newVal, oldVal){
this.check_item_offer(itemId, unitId, newVal, key, 16);
}
}
有关vuejs watch
的更多信息