2016-03-22 22 views
0

我想知道是否有可能在Angular中使用另一个定义值的值?让我们用说,我有两个定义的值,并要确定第三值,前两个条件:AngularJS使用值的值(常量)

angular.module('my.module').value('firstOne', ['John', 'Mary']); 
angular.module('my.module').value('secondOne', ['Tom', 'Jack']); 

angular.module('my.module').value('combined', [firstOne[0], secondOne[1]); 
+0

由于没有办法将任何东西注入到值中,我猜测答案是否定的。 – Lex

+1

可以使用“值”来定义另一个“值”。另外,如果你想在你的代码中改变它,使用'value',否则使用'constant'。按照解释:http://ilikekillnerds.com/2014/11/constants-values-global-variables-in-angularjs-the-right-way/ – klauskpm

+0

@klauskpm你能写一个答案的例子吗? – Ricardas

回答

2

你可以做到这一点,

var app = angular.module('my.module', []); //just a shortcut, don't have to do this 

app.value('firstOne', ['John', 'Mary']); 
app.value('secondOne', ['Tom', 'Jack']); 

app.service('constantService', function(firstOne, secondOne) { 
    this.combined = [firstOne[0], secondOne[1]]; 
}); 

然后用它在任何地方,注入constantService的功能,然后调用 constantService.combined

+0

这几乎是我一直在想的,如果没有其他答案,我会接受这一个 – Ricardas

+0

肯定没有probs。谢谢! –

+1

他还可以将'combined'声明为'app.value('combined',[]);'在'function'上调用它并像'combined.push([firstOne [0],secondOne [1])一样完成;'' – klauskpm

0

我们可以通过做下面的代码来完成您的任务。

angular.module('my.module') 
.value('RESOURCES', (function() { 
var firstOne = ['John', 'Mary']; 
var secondOne = ['Tom', 'Jack']; 
return { 
    firstOne: firstOne, 
    secondOne: firstOne, 
    combined: firstOne[0] + firstOne[1] 
} 
})())