【问题标题】:json parse within angularjs filter causes infinite loopangularjs过滤器中的json解析导致无限循环
【发布时间】:2012-11-09 01:55:38
【问题描述】:

我有一个过滤器函数,它可以进行同步 ajax 调用。该函数的回调返回一个 json 对象,然后将其传递给过滤器函数的变量,然后将其作为过滤器结果返回。仅当 ajax 调用的 dataType 设置为“json”时,才会进行 ajax 调用的无限循环。返回字符串时,没有无限循环。

为什么这段代码放在过滤器函数中时会导致递归无限循环?

        var result;
        that = this;
        $.ajax({
            url: '/url/',
            async: false,
            dataType: 'json',
            type: 'get',
            success: function (links) {

                that.result = links;
            }
        });

        return that.result;

【问题讨论】:

  • 你能提供更多你的代码 ex js & html 吗?你想问什么?
  • 也许我遗漏了一些东西,但这看起来不像是一个同步的 AJAX 调用 - 看起来你正在返回 undefined 然后稍后再设置它。
  • 我已经修改了代码以将 ajax 结果传递给父作用域的 var。问题是一样的。

标签: javascript jquery angularjs


【解决方案1】:
  1. 不要使用同步 ajax cals。
  2. 不要在过滤器中使用长时间处理 = 在每个 $digest 循环中都会调用过滤器,因此您在过滤器中的长同步 ajax 调用只会一次又一次地冻结浏览器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多