我在初始化全局变量以在mycontroller的所有函数中使用时遇到一些问题:
到目前为止,这是我所做的:
JS:
$scope.init = function (table) {
alert("alert 1 : " + table);
$scope.tableName = table;
alert($scope.tableName);
};
tableName = $scope.tableName;
alert("alert 2 : " + tableName);
HTML:
<div ng-init="init('RIGHTTABLE')" ng-controller="DropdownCaptionCtrl">
我的浏览器上有以下命令的警报:
警报2:未定义
警报1:RIGHTTABLE
您有解决此问题的想法吗?
我想要的是按此顺序发送警报:
警报1:RIGHTTABLE
警报2:RIGHTTABLE
实际上,我想在所有控制器功能中使用全局变量
$scope.tableName
,我想在页面启动时对其进行初始化Codepen here
谢谢
最佳答案
由于控制器最初已加载,因此在获取未定义的变量后将调用您的init函数,您可以做的是
$scope.init = function (table) {
alert("alert 1 : " + table);
$scope.tableName = table;
alert($scope.tableName);
alert("alert 2 : " + $scope.tableName);
};
更新:
如果要在所有控制器中使用变量,请使用
Service
其他选择是使用$ rootScope,
$scope.init = function (table) {
alert("alert 1 : " + table);
$rootScope.tableName = table;
alert($rootScope.tableName);
alert("alert 2 : " + $rootScope.tableName);
};
然后,您将可以使用
$rootScope.tableName
在任何控制器中进行访问