我对ngStorage有疑问。当我将我的工厂用于jQuery的$ajax
时,我无法在$localStorage
中使用.then()
(它不会工作)。
$scope.updateProfile = function () {
updateProfileFactory.init($scope.dataProfile).then(
function (data)
if (data.status == "success") {
$localStorage.currentUser.fullname = $scope.dataProfile.u_fullname;
}
}
)
}
如果我在$localStorage
之外使用.then()
,它可以正常工作,但我必须把它放进去。
$scope.updateProfile = function () {
$localStorage.currentUser.fullname = $scope.dataProfile.u_fullname;
updateProfileFactory.init($scope.dataProfile).then(
function (data) {
if (data.status == "success") {
// code
}
}
)
}
问题出在哪里?
答案 0 :(得分:3)
为什么不使用Angular的$http
库来执行您的AJAX操作?混合jQuery和Angular证明可以产生不可预测的结果。
我可以看到你已经在你的应用程序中使用了Angular。所以你没有理由不完全采用Angular方式。 $http
服务提供了jQuery' $.ajax
提供的所有功能以及更多功能。
当你在vanilla Javascript或jQuery函数中使用Angular函数时,Angular并不知道这些函数被调用,因为它们超出了它的范围。在这里你可以使用Angular的$apply
,但这并不理想,而且很糟糕。
此处您的问题可能是$.ajax
的回调函数不知道$localStorage
,因为它不是作为依赖项传递的。