我有以下一点javascript,实际上它是有角度的,但它是相同的..
我试图通过联合前一个变量来设置expertUri变量,但我无法让它工作。我试过“这个”......但仍然没有运气。
'use strict';
angular.module('testme')
.constant('config', {
standardUri: 'http://localhost/setup',
expertUri : standardUri+ '/expert' // THIS FAILS
});
有谁知道我做错了什么?
由于
答案 0 :(得分:0)
当您尝试访问standardUri时,尚未定义它。即使它是这样,你也无法以这种方式访问它,因为它是一个对象属性,而不是一个变量。
这应该有效:
'use strict';
var standardUri = 'http://localhost/setup';
angular.module('testme')
.constant('config', {
standardUri: standardUri,
expertUri : standardUri+ '/expert'
});
答案 1 :(得分:0)
在不引入新变量的情况下“完成此工作”的唯一方法是将 expertUri 作为 getter
{
standardUri: 'http://localhost/setup',
get expertUri () {return this.standardUri + '/expert';}
}
这意味着每次您尝试访问属性 expertUri 时,您实际上都在调用函数,其中this
将允许您访问< EM>对象
答案 2 :(得分:0)
您也可以使用匿名函数并立即调用它来创建对象,这会隐藏变量,但感觉就像锤子一样破解坚果......
angular.module('testme')
.constant('config',
(function() {
var stdUri = 'http://localhost/setup';
return {
standardUri: stdUri,
expertUri : stdUri+ '/expert'
};
}
}())
);