AngularJS - 调用函数后$scope控制器中未定义自身



目前我正在做一个项目,该项目为一个提供不同链接的网站(使用AngularJS路由(。如果某人不是管理员,则应隐藏其中一个。用户登录时,信息(如果他们已登录并且是管理员(将存储在 Cookie 中。所以基本上这是页面的布局。

<body ng-app="Main">
<ul>
<li><a href="#/!" class="active">Send SMS</a></li> //main-view
<li><a href="#!edit" ng-show="isAdmin">Edit Groups</a></li> //admin-view
<li><a href="#!logout">Log out</a></li>
</ul>
<div ng-view></div>

这是JavaScript/AngularJS部分:

var app = angular.module('Main', ["ngRoute"]);
//Controller for the admin-View
app.controller('adminCtrl', ['$scope', function($scope) 
{                
$scope.isAdmin = checkAdmin(); 
console.log($scope.isAdmin);
//many calls/functions here ($ajax etc..)
}]);
//Controller for the main-View
app.controller('mainCtrl', ['$scope', function($scope) 
{
$scope.isAdmin = checkAdmin(); 
//many calls/functions here ($ajax etc..)
}]);

当我运行页面并登录时,我进入主视图。如果我输出 $scope.isAdmin 的值,我会得到正确的值。但是,如果我尝试在页面上执行某些操作,例如单击按钮(因此调用函数(,控制台输出是未定义的,并且我收到一条错误消息,指出我无法设置未定义的属性isAdmin。

按钮调用的示例函数:

$scope.sendSms = function(){
$.ajax({
url: 'sendSms.php',
type: 'POST',
data: {text: $scope.Text},
success: function (response) 
{
$scope.Text = "";
$scope.showSuccessSend = true;
$scope.$apply();               
},
error: function () 
{
$scope.showFailSend = true;
}
});           
};

我已经玩了很长时间,尝试使用$rootScope等,但范围总是未定义。请帮我找到为什么$scope"没有定义"的问题。 任何帮助都非常感谢!

发现错误。控制器在 ajax 调用时重新加载,因为我不小心使用了两次变量名。不过,谢谢大家抽出时间:)

最新更新