如何使用 http get return 值设置 angular 控制器元素

how to set angular controller element using http get return values

我正在使用 http get 函数从服务中获取 json 数组。如何设置对控制器 locations 元素的响应。

function MainCtrl($http,myService) {
    this.locations = null;
    myService.async().then(function(d) {
        ? = d;
    });
}

响应 d 格式正确 (JSON)

您只需引用当前上下文,然后在回调中使用该变量引用

function MainCtrl($http,myService) {
    var vm = this;

    vm.locations = []; // initialise properly
    myService.async().then(function(d) {
        vm.locations = d;
    });
}

这个问题也有不同的方法。为了完整起见,我添加了 'answer'。也可以将 this 引用绑定到您的函数。这可以通过两种方式实现,即使用 angular.bind() or the native javascript bind 传递此引用。

例如:

function MainCtrl($http,myService) {
    this.locations = []; // initialise properly

    myService.async().then(function(d) {
        this.locations = d;
    }.bind(this));
}

P.S.: 我试图编辑你的答案并将这个解决方案添加到这个不同范围的问题中,但它被拒绝了。原因如下:

此编辑旨在称呼 post 的作者,作为编辑毫无意义。它应该写成评论或答案

不要针对审稿人,但他们肯定没有意识到我不能 post 对我目前的代表发表任何评论,也没有必要回答已回答的问题。