AngularJS - 回归不会起作用?

时间:2017-10-05 10:56:36

标签: angularjs

编辑:感谢您重复的链接,它有所帮助,但我仍然感到困惑。我明白,如果我刚刚写了$scope.phones = function(){ return $http.get(url)},那就不会起作用了。我已经在使用.then来评估这个承诺。我不明白为什么我无法在我的诺言中使用$ scope.phones = response.data获得承诺返回到我的$ scope.phones的价值。

如果我写$ scope.phones = GetPhones()基本上它是什么"调用函数GetPhones,评估它并返回承诺"。但我也在写.then return response.data。为什么不足以评估承诺?

我知道它是异步的,所以代码的其余部分已经运行了,但是应该包含我在模板中使用的ng-repeat。为什么通过为其分配response.data来更改值会导致我的浏览器加载数据但是为其分配return response.data,不会触发更新?

我正在尝试查询API以获取一些数据并将其显示在我的.html文件的列表中。但出于某种原因,我的回归"丢失数据......(参见注释代码)

(我正在做官方angularjs教程的变体)

$scope.GetPhones = function () {
        return $http.get($scope.baseurl + '/api/PhoneApi')
            .then(function (response) {
                $scope.phones = response.data; //It works like this
                return response.data; //but not like this
            });
    };
$scope.phones = GetPhones();

即使两行都在代码中它仍然有用,它就像GetPhones();在$ scope.phones中永远不会调用,但是当我加载页面时,该函数被调用一次......

当我将.then返回值传递给函数返回值时,我想我做错了什么?实际上很难找到这样的例子,大多数人似乎都使用$scope.var = response.data;

帮帮我理解这个?

0 个答案:

没有答案