gpt4 book ai didi

javascript - ngStorage ($localStorage) 在 .then() 中不起作用

转载 作者:行者123 更新时间:2023-11-28 18:21:28 26 4
gpt4 key购买 nike

我对ngStorage有疑问。当我将我的工厂用于 jQuery 的 $ajax 时,我无法在 .then() 中使用 $localStorage (它不起作用) .

$scope.updateProfile = function () {          
updateProfileFactory.init($scope.dataProfile).then(
function (data)
if (data.status == "success") {
$localStorage.currentUser.fullname = $scope.dataProfile.u_fullname;
}
}
)
}

如果我在.then()之外使用$localStorage,它工作得很好,但我必须把它放在里面。

$scope.updateProfile = function () {        
$localStorage.currentUser.fullname = $scope.dataProfile.u_fullname;
updateProfileFactory.init($scope.dataProfile).then(
function (data) {
if (data.status == "success") {
// code
}
}
)
}

问题出在哪里?

最佳答案

为什么不使用 Angular 的 $http 库来完成 AJAX 操作?事实证明,混合使用 jQuery 和 Angular 会产生不可预测的结果。

我可以看到您已经在应用程序中使用了 Angular。因此,你确实没有理由不完全采用 Angular 方式。 $http 服务提供 jQuery 的 $.ajax 提供的所有功能以及更多功能。

当您在普通 Javascript 或 jQuery 函数中使用 Angular 函数时,Angular 不知道这些函数被调用,因为它们超出了它的范围。在这里,您可以使用 Angular 的 $apply,但这并不理想,而且很糟糕。

这里您的问题可能是 $.ajax 的回调函数不知道 $localStorage,因为它没有作为依赖项传入。

关于javascript - ngStorage ($localStorage) 在 .then() 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39789548/

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