如何在Angular中使用常量?

时间:2014-07-14 09:31:30

标签: javascript angularjs

我无法从服务中的string检索myConstant。 我在这里做错了什么以及如何解决它?请提供代码示例。

   // Define Angular App
    var app = angular.module('App', ['ngRoute', 'LocalStorageModule', 'angular-loading-bar']).constant('myConstant', {
        string: 'myString',
        size: 30
    });


    'use strict';
    app.factory('devicesService', ['$http', 'myConstant', function ($http) {
        var serviceBase = myConstant.string; // PROBLEM HERE
...

3 个答案:

答案 0 :(得分:2)

这是在角度中使用常量的示例:将其添加到app.js

.constant('AUTH_EVENTS', {
    AuthenticatedSuccess: 'auth-user-success',
})
在你的控制器中

.controller('ApplicationController', function ($scope, AUTH_EVENTS) {
        console.log(AUTH_EVENTS.AuthenticatedSuccess);
        }

答案 1 :(得分:2)

您可以使用constantvalue

为应用添加常量

两者完全相同,只是略有不同。也就是说,constant中的值永远无法更改,而value中的值可以使用decorator更改。

示例:

var app = angular.module('app', []);

app.constant('MY_CONSTANT', {
    value1: 'value 123',
});

app.variable('MY_VARIABLE', {
    value1: 'value 456',
});

app.controller('MainCtrl', function ($scope, MY_CONSTANT, MY_VARIABLE) {
    console.log('constant: ', MY_CONSTANT.value1);
    console.log('variable: ', MY_VARIABLE.value1);
});

答案 2 :(得分:1)

如果您在常规工厂函数中添加常量作为参数,那么您的代码可以正常工作:

app.factory('devicesService', ['$http', 'myConstant', function ($http, myConstant) {

在您的示例中,您只将其添加到 min-safe数组,但未添加到实际功能中。
我猜这就是你在那里遇到问题的原因,因为函数不知道任何myConstant变量。