我最近开始玩Angular.js,并且得到了一个非常好的演示项目。但是,当我尝试从后端Web服务加载数据而不是硬编码数组时,我开始挂起。具体来说,在我使用$ .getJSON()。done(...)设置$ scope后,页面似乎没有正确的数据绑定。在.getJSON完成之后,不是仅仅为$ scope分配值,我应该在其他地方/不同地做它吗?我搜索了高低,真的找不到任何有用的角度示例,从后端提取初始数据。
提前感谢您对此的任何帮助!
答案 0 :(得分:13)
由于您尝试更新Angular之外的$scope
,因此您必须使用范围内的$apply方法更改模型。
可能是这样的:
$.getJSON('ajax/test.json', function(data) {
$scope.$apply(function(){
$scope.modelData = data;
});
});
使用AngularJS访问后端的首选方法是使用$http或$resource服务代替jQuery。您无需使用$scope.$apply
即可直接更新$scope.modelData
。
答案 1 :(得分:0)
或者不是使用apply包装,只需在回调函数的末尾调用它,如
$.getJSON('ajax/test.json', function(data) {
$scope.data = data;
$scope.$apply();
});