gpt4 book ai didi

javascript - 函数调用之间 Angular 变量不会为 "unset"

转载 作者:行者123 更新时间:2023-12-02 16:11:04 24 4
gpt4 key购买 nike

我有一个 Angular 设置,可以设置变量的值并且不会让它消失。我正在尝试在对 http 的两个函数调用之间设置/重置 $scope 变量的值。所以基本上:

$scope.submit = function() {
$http({
url:'http://localhost:3001/foo/api/v1/auth',
method: 'post',
data: JSON.stringify({email:$scope.user.email}),
headers: {'Content-type': 'application/json'}
}).success(function (data, status, headers, config) {
$scope.status = data.status;
}).error(function(data, status, headers, config) {
$scope.status = status + ' ' + headers;
}) ...etc...

然后,当第一个完成时,html 页面会相应更改,然后我调用另一个函数:

  $scope.thirdPage = function(user) {
var userStatus;
var goCode = JSON.stringify({email:$scope.user.email, securitycode:$scope.userCode});
$http({
url:'http://localhost:3001/foo/api/v1/auth',
method: 'post',
data: goCode,
headers: {'Content-type': 'application/json'}
}).success(function (data, status, headers, config) {
//neither of these work
$scope.status = data.status; //retains original value
$scope.userStatus = data.status; //will not pick up data.status
}).error(function(data, status, headers, config) {
$scope.status = status + ' ' + headers;
$log.warn("scopeErrorStatus: " + $scope.status);
})

Angular 不允许我将 $scope.status 的值从一个函数重新设置到下一个函数,也不允许我将不同的变量设置为 data.status。认为问题是 AJAX 查询尚未完成,我尝试使用 $watch (没有区别)和 $apply (抛出一个错误,似乎与也在运行的 Bootstrap 代码有关)。已将变量声明为函数的局部变量、全局变量等。这让我抓狂。想法?

最佳答案

调试的第一步应该是输出$scope.statusdata.status的值。查看该值是否真的没有被赋值。

因此,您应该将相关行之前和之后的值都记录到控制台,以查看发生了什么。

console.log(data.status + "/" + $scope.status);

我无法想象作业会失败。因此,记录这些值以查看到底发生了什么。

关于javascript - 函数调用之间 Angular 变量不会为 "unset",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30197999/

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