2015-05-29 40 views
1

我現在有複選框,用戶可以在它們之間,然後被髮送到我的模型選擇,AngularJS:映射覆選框以陣列

<div ng-repeat="option in roleOptions"> 
    <input type="checkbox" value="{{option.Id}}" ng-model="user.Roles[option.Id]">{{option.Name}} 
</div> 

的問題是,這會產生這樣的結果,

{ 
    0: 'a', 
    1: 'b', 
    2: 'c' 
} 

而我想這樣的輸出,

['a','b','c'] 

我意識到,我可以將它們轉換AF ter,但我真的很想以某種方式更改我的html,以便它可以直接映射到數組,因爲我也將以數組格式將此數據發送到html,所以我不希望不斷轉換。

任何想法?

回答

1

ng-model 只對物體起作用。您正在嘗試將值推送到數組上。你可能最好使用ng-click並創建你自己的處理程序來從數組中推/移。

<div ng-repeat="option in roleOptions"> 
    <input type="checkbox" value="{{option.Id}}" ng-click="addToArray(user.Roles, option.Id)">{{option.Name}} 
</div> 
+0

好的謝謝。我想我必須以尷尬的方式來做,並將它來回轉換。 – user3407039

+0

不應該那麼尷尬。只需創建一個函數,添加/刪除您正在使用的數組中的值。沒有更多的絨毛需要:) –

+0

@ user3407039如果這個答案是令人滿意的,請接受它。 –