全新的离子和角度场景。 我使用离子创建器生成视图文件。 我的目标是在继续进入选项卡之前检查用户是否已登录。 但是,在进入身份验证部分之前,我想检查用户所在的窗口。 我正在尝试使用简单的alert / console.log来识别进度。
以下是我的代码。
.controller('adminPageCtrl', ['$scope', '$stateParams', '$state', function ($rootScope, $scope, $stateParams, $state) {
//alert($state.current.name);
$scope.currState = $state;
var currentState = $state.current.name;
console.log($state);
}])
我遇到了以下错误,我似乎无法做出正面或反面。 “ionic.bundle.js:26799 TypeError:无法读取未定义的属性'current'。
非常感谢任何帮助。 甚至是console.log($ state);命令返回“undefined”。
答案 0 :(得分:2)
您的代码存在的问题是您定义的依赖性比实际使用的要多。
您可以通过删除函数定义中对$ rootScope的引用或将其添加到依赖项列表来修复它。
.controller('adminPageCtrl', ['$scope', '$stateParams', '$state', function($scope, $stateParams, $state) {
//alert($state.current.name);
$scope.currState = $state;
var currentState = $state.current.name;
console.log($state);
}])
OR
.controller('adminPageCtrl', ['$rootScope', '$scope', '$stateParams', '$state', function($rootScope, $scope, $stateParams, $state) {
//alert($state.current.name);
$scope.currState = $state;
var currentState = $state.current.name;
console.log($state);
}])
由于您使用依赖项的名称来命名函数内部的变量,您还可以使用Implicit Annotation(请查看文档https://docs.angularjs.org/guide/di):
.controller('adminPageCtrl', function($scope, $stateParams, $state) {
//alert($state.current.name);
$scope.currState = $state;
var currentState = $state.current.name;
console.log($state);
})
答案 1 :(得分:1)
您需要$rootScope
依赖项。如果没有它们,您将收到另一个参数列表。
.controller('adminPageCtrl', ['$rootScope', '$scope', '$stateParams', '$state', function($rootScope, $scope, $stateParams, $state) {
$scope.currState = $state;
var currentState = $state.current.name;
console.log($state);
}])