San*_*ket 5 data-binding post http angularjs
我在使用角度js时遇到了一个奇怪的问题我正在使用ajax调用获取数据.我将数据绑定到$ scope对象,但是数据绑定后面的视图没有得到更新我的代码
$scope.getPlanDetail = function (){
$rootScope.planBody.checkUpdate= false;
$http.post('http://MyServerURL',JSON.stringify($rootScope.planBody)).
success(function(response){
$scope.dataVal = response;//Able to view data in console;
console.log($scope.dataVal)//data json shown in log window
localStorage.setItem("tempDataVal", JSON.stringify(response));//able to set data in localStorage;
}
}
Run Code Online (Sandbox Code Playgroud)
使用ng-click在btn点击时调用getPlanDetail()函数
我在其他情况下使用相同的功能(使用get方法.),其中代码正常工作.我发现的唯一差异是当前的AJAX调用占用了大量时间,因为服务器端处理过多及其post方法我不确定这是否(使用post方法)导致绑定问题
在同一视图(.html)上我添加了虚拟按钮ng-click事件.在ajax成功调用之后,我单击按钮并加载视图,因为使用了localStorage变量中的数据.
$scope.dummyClick= function(){
console.log($scope.dataVal);//giving Undefined
$scope.dataVal = JSON.parse(localStorage.getItem("tempDataVal"));// this time view binded properly.
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么数据没有绑定到成功方法中的视图.如果服务器花费太多时间来响应,$ scope会在一段时间后超时吗?
提前致谢.
小智 1
如果您要在 ajax 调用中更改模型,那么您需要通知 Angular js 您有一些更改。
$scope.$apply(); 以下行之后将解决您的问题。此行将更新范围。
$scope.dataVal = 响应;
谢谢,
桑蒂伊
| 归档时间: |
|
| 查看次数: |
1696 次 |
| 最近记录: |