Vue2:当我从响应中分配属性时,为啥会收到无限的 $http.get 请求?
Posted
技术标签:
【中文标题】Vue2:当我从响应中分配属性时,为啥会收到无限的 $http.get 请求?【英文标题】:Vue2: Why do I get infinite $http.get requests when I assign property from response?Vue2:当我从响应中分配属性时,为什么会收到无限的 $http.get 请求? 【发布时间】:2017-05-29 18:17:51 【问题描述】:我在后端调用$http.get
处理数据并返回结果,我想动态地将属性分配给this
(属性在数据列表中声明):
watch:
send_amount: function()
this.updateAmount('my_param1');
,
receive_amount: function()
this.updateAmount('my_param2');
,
,
methods:
updateAmount: function(_par)
var vVar = this;
this.$http.get('http://www.website.dev/api/calculate', params: rec: _par )
.then(function(response)
_results = JSON.parse(response.data);
$.each(_results, function(k, v)
vVar[k] = v; // << this causes the $http.get request to be sent over and over, infinitely.
);
);
【问题讨论】:
没有看到你的数据,我猜你正在更新你正在观看的变量,导致该方法被一次又一次地调用。 这似乎是问题所在。我正在观看两个输入,其中一个由客户端更新,另一个以编程方式更新。我已经更新了我的代码来说明它。那么在程序化更新的情况下如何让手表不更新呢? 【参考方案1】:由于您不想在以编程方式更改变量时调用 updateAmount
方法,您可以改为删除手表并在这些变量的输入字段中使用 v-on:change
,如下所示:
<input v-model="receive_amount" v-on:change"updateAmount" />
【讨论】:
以上是关于Vue2:当我从响应中分配属性时,为啥会收到无限的 $http.get 请求?的主要内容,如果未能解决你的问题,请参考以下文章
当我使用 HTTP 协议尝试请求时,为啥会收到错误的请求响应?
为啥只有当我从 iframe 调用 postMessage() 方法时我的 Angular 属性才会更新
为啥在单个语句中分配动态对象的成员变量会导致 PHP 中的语法错误?