$scope 变量在 init 函数之外变得未定义

$scope variables become undefined outside of init function

我有一个名为 init 的 AngularJS 函数,它是从我的 HTML 代码调用的:

<div ng-controller="main" ng-init="initpara('<?php echo values;?>', '<?php echo values;?>', '<?php echo values;?>')">

控制器已经定义并且 $scope 已经注入(这里没有包含控制器的东西)。我知道 Angular 函数可以很好地接收参数,因为我已经对它执行了 console.log。我一直这样做是为了将 PHP 变量传递到我的控制器中(尽管这可能是一种不好的做法),但是,今天我 运行 遇到了问题。当我的作用域变量在函数之外时,它们会自动变为未定义状态。通常情况下,这不会发生(尽管这可能只是过去工作中的巧合)

$scope.initpara = function(userStatus, feedbackStatus, favoriteStatus) {
    $scope.userStatus = userStatus;
    console.log($scope.userStatus);
}
console.log($scope.userStatus);
Output:
undefined line 79 <- outside the function
1 (the result I want for userStatus) line 76 <- inside the function

还有其他方法可以将 PHP 变量传递给 AngularJS 吗?这很奇怪运行ge,因为它以前从未对我这样做过。

您尚未在记录的那一刻初始化 $scope.userStatus,因为您刚刚定义了 $scope.initpara,之前从未调用过它。 Angular 是异步的,因为当你声明 initpara 时它可能还没有加载 DOM,我的猜测是它只在控制台日志之后初始化数据。