【问题标题】:Not accessible constant value in other controller in angular js using IIFE function使用 IIFE 函数在 Angular js 中的其他控制器中无法访问常量值
【发布时间】:2016-07-05 07:00:29
【问题描述】:

以下是我的示例 Angular js 代码,我已经声明了 myApp 模块,我想在两个不同的文件中编写代码, 在第一个文件中我声明了模块和一个常量文件,在另一个文件中我声明了控制器。我想将 CLientId 的常量值访问到控制器中,但无法访问,请提供解决方案

<div ng-app="myApp" ng-controller="myCtrl as vm">
{{ vm.firstName + " " + vm.lastName + " "+ vm.getName(); }}
</div>

<script>
// i want to diclare above code into different js files
//app.js 
(function(){

angular.module("myApp", []).value('clientId', 'a12345654321x');

})();

//con.js 
(function(){
angular.module("myApp", []).controller("myCtrl", function(clientId) {

    this.firstName = "John";
    this.lastName = "Doe";
    this.getName= name;
    function name()    {
        return  clientId ; 
     }
});

})();

</script>

</body>
</html>

【问题讨论】:

  • 删除您的模块定义之一中的括号

标签: javascript angularjs iife


【解决方案1】:

控制器注册不应该有[] 括号,因为它会覆盖已经创建的模块。这样做:

(function(){
angular.module("myApp").controller("myCtrl", function(clientId) {

    this.firstName = "John";
    this.lastName = "Doe";
    this.getName= name;
    function name()    {
        return  clientId ; 
     }
});

})();

【讨论】:

    【解决方案2】:

    删除[],因为它重新定义了您的myApp 模块

    (function(){
    
    angular.module("myApp").value('clientId', 'a12345654321x');
    
    })();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-01
      • 2015-09-07
      • 2016-03-30
      • 1970-01-01
      • 1970-01-01
      • 2020-04-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多