2015-08-16 15 views
6

Chłopaki po użyłem kątowych dyrektywa NG-opcje Mam ten wynikDlaczego wartość Anggular ng-options zawiera typ danych wartości?

<select name="users" id="users" ng-options="user.id as user.name for user in users" ng-model="user"> 
    <option value="number:1" label="Developers">Ahmed</option> 
    <option value="number:2" label="Designers">Jon</option> 
    <option value="number:3" label="HR">Astm</option> 
    <option value="number:4" label="Doctor">Fady</option> 
</select> 


<select name="colors" id="colors" ng-options="color.code as color.name for color in colors" ng-model="color"> 
    <option value="string:ff0000" label="Developers">Red</option> 
    <option value="string:ffffff" label="Designers">White</option> 
    <option value="string:000000" label="HR">Black</option> 
</select> 

dlaczego wartość opcji zawiera typ danych, takich jak Numer: 1 lub wyrażenie: FFFFFF ??

Jak mogę usunąć z niego typ danych i zachować tylko wartość?

+0

można utworzyć plunkr tego samego? –

+1

Dlaczego cię to obchodzi? W każdym razie nie powinieneś zadzierać z DOMem. Liczy się to, co Twój model (np. $ Scope.user i $ scope.color) zawiera –

+0

Czytam to z tablicy Json, jak [ { "id": 1, "name": "Ahmed" }, { "id": 2, "name": "Jon" } ] – Astm

Odpowiedz

0

W tej chwili nie ma opcji kątowej, aby usunąć ten typ. Jeśli tego potrzebujesz, użyj dyrektywy niestandardowej z opcją ng jako rodzicem.

+0

można wysłać do mnie przykładem proszę :) – Astm

+0

mogę wiedzieć, dlaczego u trzeba tę opcję, Czy wolno czy nie ?? – Gopi

+0

zobacz odpowiedź tutaj: http://stackoverflow.com/a/31575391/404699 – steampowered

5

Dodaj track by [id] pod koniec ng-options.

W twoim przypadku będzie to:

ng-options="user.id as user.name for user in users track by user.id" 

i

ng-options="color.code as color.name for color in colors track by color.code" 
+0

Dziękuję, uratowałeś mi dzień –