Javascript 使用IIFE函数在角度js中的其他控制器中无法访问常量值
下面是我的示例angular js代码,我声明了myApp模块,我想在两个不同的文件中编写代码, 在第一个文件中,我声明了模块和一个常量文件,在另一个文件中,我声明了控制器。我想将CLientId的常量值访问到控制器中,但无法访问,请提供解决方案Javascript 使用IIFE函数在角度js中的其他控制器中无法访问常量值,javascript,angularjs,iife,Javascript,Angularjs,Iife,下面是我的示例angular js代码,我声明了myApp模块,我想在两个不同的文件中编写代码, 在第一个文件中,我声明了模块和一个常量文件,在另一个文件中,我声明了控制器。我想将CLientId的常量值访问到控制器中,但无法访问,请提供解决方案 <div ng-app="myApp" ng-controller="myCtrl as vm"> {{ vm.firstName + " " + vm.lastName + " "+ vm.getName(); }} </div&g
<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>
<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>
{{vm.firstName+“”+vm.lastName+“”+vm.getName();}}
//我想把上面的代码转换成不同的js文件
//app.js
(功能(){
angular.module(“myApp”,[]).value('clientId','a12345654321x');
})();
//con.js
(功能(){
angular.module(“myApp”,[]).controller(“myCtrl”,函数(clientId){
this.firstName=“John”;
this.lastName=“Doe”;
this.getName=name;
函数名(){
返回客户ID;
}
});
})();
删除[]
,因为它重新定义了您的myApp
模块
<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>
(function(){
angular.module("myApp").value('clientId', 'a12345654321x');
})();
控制器注册不应包含
[]
括号,因为它将覆盖已创建的模块。这样做:
<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>
(function(){
angular.module("myApp").controller("myCtrl", function(clientId) {
this.firstName = "John";
this.lastName = "Doe";
this.getName= name;
function name() {
return clientId ;
}
});
})();
删除其中一个模块定义中的括号