繁体   English   中英

ng-init和ng-controller的问题

[英]Issue with ng-init and ng-controller

我在初始化全局变量以在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在这里

谢谢

由于控制器最初已加载,因此在获取未定义的变量后将调用您的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在任何控制器中进行访问

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM