javascript - 使用 AJAX 调用更新的出厂值同步指令数据

标签 javascript ajax angularjs angularjs-directive angularjs-factory

我有两个简单的指令,我们称它们为 bluered。我需要的是让它们以这样一种方式工作:当我单击 red 指令中的按钮时,blue 中的值会自动更新。反之亦然。

使用工厂非常简单...直到更新数据的函数变成 $http 调用,该调用仅在成功完成后才更改数据。

我这里有一个没有 $http 的工作 pluker: http://plnkr.co/edit/Dyy3AEu68OwjRqLahXMX?p=preview

这是我对 $http 的尝试: http://plnkr.co/edit/FD2538Ji4NbvY5wrjYgz?p=preview

我是不是遗漏了什么,或者这不是解决问题的方法?我知道可以使用 $broadcast 来完成,但对我来说这似乎有点矫枉过正。

最佳答案

已为您修复:http://plnkr.co/edit/rrowocPucUFAN6Ii1COf?p=preview

您在工厂中使用“data”,并在成功回调中用作变量名。

这是有问题的部分:

myFactory.$inject = ['$http'];
function myFactory($http) {

    var data = {};

    data.blueData = 0;
    data.redData = 0;

    data.changeBlueData = function () {
        $http.get('http://httpbin.org/ip').
            success(function(response, status, headers, config) {  // Changed "data" to "response";
                data.blueData++;
            });
    };

    data.changeRedData = function () {
        $http.get('http://httpbin.org/ip').
            success(function(response, status, headers, config) {  // Changed "data" to "response"
                data.redData++;
            });
    };

    return data;
}

Response 是一个更清晰的变量名,也是 AJAX 返回的标准名称。

关于javascript - 使用 AJAX 调用更新的出厂值同步指令数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30490121/

相关文章:

javascript - 使用 Select Option 下拉菜单的 jQuery Multiple Star Rating 系统

javascript - 根据选择显示隐藏输入元素

javascript - 从多个 json 文件更新 d3 pack 布局

javascript - 执行python脚本——Ajax和Flask

javascript - JS : For loop continues to iterate after condition is false

javascript - 在 css 工作表和 html 元素 id 中使用 javascript

c# - 将上传文件与表单数据一起发送

javascript - 类型错误 :$. ajax 不是一个函数——点击 spring boot @controller 页面的问题

c# - AngularJS:如何使用 AngularJS 而不是 Razor 设置 MVC 模型数据值?

javascript - 在 AngularJS 中显示加载栏时禁用控件