2015-12-30 101 views
1

我已經完成了自定義枚舉(請參閱代碼),並且希望重複使用以FOOBAR聲明的常量,而不必在types陣列中再次寫入常量的值。我會怎麼做呢?在同一個角度模塊中重複使用常量

var myApp = angular.module('app'); 
myApp.constant('MyEnum', { 
FOO: "foo", 
BAR: "bar", 

types: [ 
    {id: 0, value: 'foo', label:"Foo"}, 
    {id: 1, value: 'bar', label:"Bar"} 
] 
}); 

我願做這樣的事情types數組中:

types: [ 
    {id: 0, value: this.FOO, label:"Foo"}, 
    {id: 1, value: this.BAR, label:"Bar"} 
] 

做起來像這給了我的錯誤。有什麼建議麼?

回答

2

您將不得不爲此使用中間變量。也許把它們存儲在關閉中,這樣你就不會用不需要的變量來污染範圍。例如:

var myApp = angular.module('app'); 
myApp.constant('MyEnum', function() { 

    var __FOO = "foo", 
     __BAR = "bar"; 

    return { 

     FOO: __FOO, 
     BAR: __BAR, 

     types: [ 
      {id: 0, value: __FOO, label: "Foo"}, 
      {id: 1, value: __BAR, label: "Bar"} 
     ] 
    } 
}()); 
+0

謝謝!在中間變量中使用兩個下劃線是否很常見? – John

+0

@John他們通常意味着「私人」變量。 –

相關問題