11

我最近开始使用 Angular.js,并且得到了一个运行良好的演示项目。但是,当我尝试从后端 Web 服务而不是硬编码数组加载数据时,我开始挂断电话。具体来说,在我使用 $.getJSON().done(...) 设置 $scope 后,页面似乎没有正确绑定数据。在 .getJSON 完成后,我应该在其他地方/不同的地方做,而不是仅仅为 $scope 分配一个值?我搜索了高低,真的找不到任何从后端提取初始数据的角度的好例子。

提前感谢您对此的任何帮助!

4

2 回答 2

13

由于您正在尝试更新 Angular 的外部,因此您必须使用范围上的$apply方法来$scope更改模型。

也许是这样的:

    $.getJSON('ajax/test.json', function(data) {
        $scope.$apply(function(){
            $scope.modelData = data;
        });
    });

使用 AngularJS 访问后端的首选方法是使用$http$resource服务代替 jQuery。你不必使用$scope.$apply你可以直接更新你的$scope.modelData

这篇文章很好地更新了Angular代码之外的模型。

于 2012-08-24T18:20:42.563 回答
0

或者不是用apply包装,而是在回调函数的末尾调用它,比如

  $.getJSON('ajax/test.json', function(data) {
    $scope.data = data;        
    $scope.$apply();
});
于 2013-11-18T19:19:22.850 回答