2015-07-02 41 views
0

我有選項中的輸入字段列表。現在,我使用ng-repeat將這些輸入字段添加到我的頁面。在ng-repeat中設置輸入類型

​​

我有他們的輸入類型在重複相同的選項對象。這些類型是這樣的:String,Varchar等

現在,我想根據我有的參數類型設置輸入字段的類型。

這裏是我想要做的

<tr ng-repeat = "option in options"> 
<td><input type="text" ></td> 
</tr> 

我有一個參數命名option.Paramtype其中包含每個輸入字段的類型。我想將輸入字段的類型設置爲數字(如果它是Int等)。

請幫忙。

回答

1

給你有選擇,如一個數組:

options = [ 
    {Paramtype:'String', foo:25, bar:'Unicorn'}, 
    {Paramtype:'int', foo:30, bar:'Kitten'}, 
    {Paramtype:'Email', foo:28, bar:'Dragon'}, 
    {Paramtype:'Date', foo:15, bar:'Kanye'} 
] 

在你的NG-重複塊,你可以使用ng-if檢查Paramtype屬性和設置相應的輸入類型。像這樣:

<tr ng-repeat = "option in options"> 
    <td> 
     <input ng-if="option.Paramtype == 'String'" type="text"> 
     <input ng-if="option.Paramtype == 'int'" type="number"> 
     <input ng-if="option.Paramtype == 'Email'" type="email"> 
    </td> 
</tr> 

希望幫助

否則,如果你可以把一個額外的參數到每個元素在你的選擇陣列,你可以使用角裝訂填充輸入類型。

options = [ 
    {Paramtype:'String', inputType:'text', bar:'Unicorn'}, 
    {Paramtype:'int', inputType:'number', bar:'Kitten'}, 
    {Paramtype:'Email', inputType:'email', bar:'Dragon'}, 
    {Paramtype:'Date', inputType:'datetime', bar:'Kanye'} 
] 

<table> 
    <tr ng-repeat = "option in options"> 
     <td><input type="{{option.inputType}}"></td> 
    </tr> 
</table> 
+0

在第一種情況下即時得到多個添加一個 – Prakhar

+0

的'NG-之開關指令被精確地用於描述的用例創建的你的答案。 – tavnab

+0

你是否暗示你想爲整個選項數組提供一個且只有一個輸入?或者您是否想要爲選項數組中的每個選項生成輸入標記?在我的示例中,options數組中有4個選項,每個選項的一個輸入元素與ng-if語句相匹配。 http://plnkr.co/edit/Q9gF9zaVbuORIwAXvEHS?p=preview –

0

我只是建議你使用ng-attr指令集的type值動態屬性,爲了讓您的實現更清潔,你應該保持一個對象,將有什麼Paramtype將映射什麼輸入類型。然後,我們可以使用mappingOfTypes變量及其索引來填充輸入字段的type屬性值。

標記

<tr ng-repeat = "option in options"> 
    <td><input ng-attr-type="{{mappingOfTypes[option.Paramtype]}}" ></td> 
</tr> 

控制器

$scope.mappingOfTypes = ["String": "text", "Int": 'number']; 
+0

它幫助你? –

相關問題