我有一个名为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吗?这很奇怪,因为它以前从未对我这么做过。
答案 0 :(得分:2)
您还没有在记录的那一刻初始化$scope.userStatus
,因为您刚刚定义了$scope.initpara
而没有先调用它。 Angular是异步的,因为当你声明initpara
时它可能还没有加载DOM,我的猜测是它只在控制台日志之后初始化数据。