我无法从服务中的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
...
答案 0 :(得分:2)
这是在角度中使用常量的示例:将其添加到app.js
.constant('AUTH_EVENTS', {
AuthenticatedSuccess: 'auth-user-success',
})
在你的控制器中:
.controller('ApplicationController', function ($scope, AUTH_EVENTS) {
console.log(AUTH_EVENTS.AuthenticatedSuccess);
}
答案 1 :(得分:2)
两者完全相同,只是略有不同。也就是说,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
变量。