2014-07-07 45 views
0

我想根據某個地圖來綁定文本。例如如何根據角度地圖綁定文本?

HTML

<div>{A: alpha, B: bravo, C: charlie, D: delta.....}[myKey]</div> 

輸出

<div>alpha</div> //if myKey is 'A' 
<div>bravo>/div> //if myKey is 'B' 
<div>charlie>/div> //if myKey is 'C' 
<div>delta>/div> //if myKey is 'D' 

And so on... 

上述作品結合 '類' 而不是 '文本'。

我不想被拍圖在我的範圍是這樣

$scope.map = {A: alpha, B: bravo, C: charlie, D: delta...} 
<div>{{map[myKey]}}</div> 

污染控制,使UI邏輯保持在UI層。

有沒有辦法只使用內置的Angular指令來做到這一點?如果我不需要,我不想編寫自定義指令。

+0

ngSwitch?堆棧溢出讓我寫更多的話。 – haimlit

+0

你的意思是隻使用內置的AngularJS指令? –

+0

@haimlit ngSwitch確實有效,但會產生很多絨毛。 – pickhunter

回答

0

如果您真的想要使用ngInit,但這確實屬於控制器。

PLUNKER

<div ng-init="myKey='A'; map={A: 'alpha', B: 'bravo'}">{{map[myKey]}}</div>  

這是不是最好的做法,但它最接近的是給你問什麼,我能想到的。

+0

這可以工作,但同樣如你所說,它污染了查看邏輯的控制器。 – pickhunter