gpt4 book ai didi

angularjs - Angular 数据在 $http.post 成功方法中没有绑定(bind)

转载 作者:可可西里 更新时间:2023-11-01 15:23:59 26 4
gpt4 key购买 nike

我在使用 angular js 时发现了一个奇怪的问题我正在使用 ajax 调用获取数据。我将数据绑定(bind)到 $scope 对象,但数据绑定(bind)后 View 未更新以下是我的代码

  $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;
}
}

getPlanDetail() 函数在使用 ng-click 的 btn click 上被调用

我在其他情况下(使用 get 方法)完成了相同的功能,其中代码正常工作。我发现的唯一差异是当前的 AJAX 调用花费了大量时间,因为服务器端处理及其 post 方法过多 我不确定这(使用 post 方法)是否会导致问题绑定(bind)

在同一 View (.html) 上,我添加了虚拟按钮 ng-click 事件。 ajax 成功调用后,我单击按钮并加载 View ,因为数据使用了 localStorage 变量。

$scope.dummyClick= function(){
console.log($scope.dataVal);//giving Undefined
$scope.dataVal = JSON.parse(localStorage.getItem("tempDataVal"));// this time view binded properly.
}

我不明白为什么数据没有绑定(bind)到成功方法中的 View 。如果服务器响应时间过长,$scope 会在一段时间后超时吗?

提前致谢。

最佳答案

如果您在 ajax 调用中更改模型,那么您需要通知 angular js 您有一些更改。

$scope.$apply();在以下行之后将解决您的问题。此行将更新范围。

$scope.dataVal = 响应;

谢谢,

桑蒂

关于angularjs - Angular 数据在 $http.post 成功方法中没有绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24535875/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com