我正在尝试在角度js中为应用程序创建常量js文件。我使用下面的代码来实现整个应用程序的常量。它工作正常。
<code>
// app.js
angular.module('myApp', [
'ngCookies',
'ngResource',
'ngSanitize',
'ngRoute'
])
.constant('config', {
mySetting: 42
})
.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.otherwise({
redirectTo: '/'
});
});
</code>
我关心的是在app.js文件中我想只写路由,对于常量我想写单独的文件,我会为我的应用程序中的所有控制器调用相同的文件。
对于整个应用程序可能是我要声明的200多个常量,所以我想使它成为控制器方面的单独文件或拆分常量文件。
请指导我哪种方式易于维护。
提前致谢
答案 0 :(得分:2)
您可以通过这种方式定义常量
app.value('config', {
"key1": "value1",
"key2": "value2"
});
并且在控制器中您可以通过这种方式访问
config.key1
或config.key2
。通过这种方式,您可以根据需要定义常量。
注意:不要忘记给
config
提供参考/注入。
此致
答案 1 :(得分:2)
您还可以使用另一个模块来维护单独的文件,以处理所有常量,工厂,服务或值。为了处理你的常量,下面的代码将给你和想法
例如:
在您的app.js
脚本文件
constant.js
文件
var myApp = angular.module("myApp", ['myConstants']); //constants module injection
myApp.controller("myController", ["$scope", "myValue", function() {
....
}]);
在你的constant.js
中angular.module("myConstants", []).constant('myValue', 'The value');
有关更多信息,请参阅http://www.learn-angular.org/#!/lessons/handling-complexity
答案 2 :(得分:0)
让我们假设你想在你的应用程序中有一个名为serviceUrl的常量。这是一种简单的方法
angular.module('myApp', ['ngRoute'])
.value('serviceUrl','http://localhost:8080/hello')
'ngRoute'是可选的。如果你的应用程序没有使用ngRoute,请忽略它。
可以在服务中访问它作为发布一些数据
angular.module('myApp').
service('myService', ['$http', 'serviceUrl',function($http,serviceUrl){
this.getData= function(data){
console.log(JSON.stringify(data));
return $http({
method: 'POST',
url: serviceUrl
data: data
})
}}