gpt4 book ai didi

javascript - 来自服务器的 AngularJS 绑定(bind)响应未在 View 中更新

转载 作者:行者123 更新时间:2023-12-01 05:47:48 25 4
gpt4 key购买 nike

我正在开发一个移动应用程序。我在尝试在 ajax 调用后从服务器返回的 View 中中继消息时遇到问题。这个想法是在用户单击“刷新”按钮后在 View 中显示消息。

绑定(bind)没有完全按照我希望的方式工作。它不会向用户显示当前消息,而是向用户显示上次单击刷新按钮时收到的消息。因此,用户在加载 View 后第一次单击按钮时,没有任何反应...我无法弄清楚为什么 View 更新不是即时的,而是仅在用户再次单击时才发生变化。

这是我的代码的简化版本:

HTML:

<span ng-model="rec">{{rec}}</span>
<button ng-click="getNew()">
Refresh
</button>

JavaScript:

$scope.rec = window.localStorage.getItem('content');
$scope.getNew = function() {
$.ajax({
...
success: function(result, textStatus, xhr) {
...
window.localStorage.setItem('content', result.content);
$scope.rec = window.localStorage.getItem('content');
}
},
error: function(xhr, textStatus, errorThrown) {
...
}
});
};

我知道,自从 View 更新后,ajax 调用每次都会成功,但比应有的时间晚了一步。感谢您提前的帮助!

最佳答案

ajax 调用完成后没有摘要循环,因此 View 不会更新。如果您使用 $http 服务而不是 $.ajax。然后 View 将更新。

代码将如下所示:

$http({method: 'GET', url: '/someUrl'}).
success(function(data, status, headers, config) {
window.localStorage.setItem('content', data);
$scope.rec = data;
}).
error(function(data, status, headers, config) {
...
});

当然,您必须将 $http 注入(inject)您的 Controller 。

关于javascript - 来自服务器的 AngularJS 绑定(bind)响应未在 View 中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25077554/

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