2016-04-10 45 views
0

後端定義的數據類型,我應該在angularjs中動態呈現。後端可能會定義「性是枚舉,價值男性和女性」。angularjs:動態創建btn-grp

{ 
    'name': 'sex', 
    'type': 'enum', 
    'options': ['female','male'], 
    'wert': 'male' 
} 

我可以很容易地使用一個選擇:

<select ng-model="wert" ng-options="value for (key,value) in options"></select> 

但希望能有一個按鈕組像

<div class="btn-group"> 
    <label class="btn btn-primary" ng-model="wert" uib-btn-radio="'male'">male</label> 
    <label class="btn btn-primary" ng-model="wert" uib-btn-radio="'female'">female</label> 
</div> 

現在我儘量讓動態這些按鈕...

<div class="btn-group" ng-repeat='option in options'> 
    <label class="btn btn-primary" ng-model="wert" uib-btn-radio="'{{option}}'">{{option}}</label> 
</div> 

我失敗了。看起來很直截了當。但爲什麼動態按鈕組無法工作?似乎沒有連接到我的範圍?

我可能沒有在這裏掌握一些基本的角度概念? 代碼將被放入指令中,但這可能與問題無關。

任何幫助將不勝感激。

回答

0

你不應該使用{{}}插補值

<div class="btn-group" ng-repeat='option in options'> 
    <label class="btn btn-primary" ng-model="model.wert" uib-btn-radio="option">{{option}}</label> 
</div> 

我想指出的另一件事是,你需要定義的模式可以遵循Dot Rule,這樣將確保約束力將在正確的方式工作。 Dot Rule的原因是,你已經在ng-repeat裏面定義了ng-model,所以在外部上下文中不可用(ng-repeat確實創建了新的子範圍,它是從它當前運行的控制器原型繼承的)。

Demo here

+0

這非常有幫助,謝謝。我現在開始工作了。 但是,我正在尋找指令,並自己創建了一個[Demo](http://plnkr.co/edit/AsobFrjqRDspdZyGGCz6)。 您對綁定的評論是否仍然適用,或者您認爲我的代碼是否是有效的解決方案?現在我沒有看到添加控制器的理由。 – user3700169

+0

我不明白,你的問題是什麼? –