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 中的语法错误?

ReferenceError:discord.js 突击队中分配的左侧无效

如何解决类中分配端点上的错误请求?

为啥我们可以直接在ByteBuffer中分配字节而不在FloatBuffer中分配浮点数