范围变量不可访问(未定义)-AngularJS
Scope variable not accessible (undefined) - AngularJS
我在一个控制器中设置一个范围变量,然后将位置更改为另一个视图。然后,在新视图的控制器中,范围变量不再可访问,它表示它是"未定义的"。我在下面添加了这个问题的简化版本,如果有任何帮助,我将不胜感激。
app.controller('loginController', function ($scope,$location){
$scope.loginUser = function (user) {
$scope.userId = "USERID";
$location.path('/view3');
}
});
视图3 控制器
app.controller('videoListController', function($scope){
alert("UserID: "+$scope.userId);
});
$scope.userId
的值显示为'undefined
'。我做错了什么?
您也可以在AngularJS 中使用$rootScope
进行全局访问
看看这个
app.controller('loginController', function ($scope,$rootScope,$location){
$scope.loginUser = function (user) {
$rootScope.userId = "USERID";
$location.path('/view3');
}
});
app.controller('videoListController', function($scope, $rootScope){
alert("UserID: "+$rootScope.userId);
});
$scope
不在控制器之间共享。如果需要在控制器之间传递数据,则需要将数据存储在其他持久的地方。
每个控制器定义范围。。。您仍然可以选择使用$scope.$parent
或$rootScope
来链接控制器,但我会小心使用它们。
Angular Services是基于单例模式的。你也可以使用这些来在控制器之间共享信息,我认为这将是最好的方法。
我发现这之前已经讨论过了,这里有一些很好的例子:
AngularJS服务在控制器之间传递数据
相关文章:
- $window.ga在AngularJS事件中未定义
- this.router在AngularJS 2中未定义
- AngularJS指令出错-无法读取属性'编译'的未定义
- AngularJS指令单元测试中未定义的函数
- angularjs无法读取未定义的属性then
- AngularJS和promise值在调用本地函数时的效果-未定义
- AngularJS:'$范围未定义'
- Angularjs-NgTable在重新加载时未定义
- AngularJS-参数'菜单Ctrl'不是函数,未定义
- AngularJs无法读取属性“”;UpdateTime”;的未定义
- 未定义的控制器AngularJS
- AngularJS ng repeat显示原型函数未定义
- angularjs-ui路由器解析工厂未定义
- Angularjs类型错误:无法读取属性'GET()'的未定义
- AngularJs 检查是否未定义和空的最佳实践
- AngularJS:无法读取未定义的属性 ''
- 范围变量在函数内部未定义 - AngularJS
- 仅在未定义AngularJS时通过
- 自变量'controllerLogin'不是函数,未定义-AngularJs,因果报应测试
- 控制器未定义AngularJS