1

我正在尝试在 Angular 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 多个我要声明的常量,所以我想让它成为单独的文件或拆分常量文件以供控制器明智使用。

请指导我哪种方式易于维护。

提前致谢

4

3 回答 3

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

于 2016-07-14T07:19:26.653 回答
2

您可以通过这种方式定义常量

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

在控制器中,您可以通过这种方式访问 config.key1​​ OR config.key2。通过这种方式,您可以根据需要定义常量。

注意:不要忘记提供参考/注入config.

问候

于 2016-07-14T05:55:00.150 回答
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
        })

}}

于 2017-10-13T07:21:36.220 回答