在AngularJs设置全局常量(Set global constants in AngularJs

2019-09-29 01:28发布

我试图创建常量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+常数我要声明,我想让它是单独的文件或者拆分常数立案控制器明智的。

请指导我哪条路是维护方便。

提前致谢

Answer 1:

您可以定义常量这样

app.value('config', {
   "key1": "value1",
   "key2": "value2"
});

和控制器,你可以访问这种方式config.key1 OR config.key2 。 通过这种方式,你需要,你可以定义常量为5月。

注意:不要忘了给参考/注入到config

问候



Answer 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



Answer 3:

让我们假设你想在你的应用程序。这里一个常数命名的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
        })

}}



文章来源: Set global constants in AngularJs