Widziałem dokumentację dyrektywy Angular select tutaj: http://docs.angularjs.org/api/ng.directive:select . Nie wiem, jak ustawić wartość domyślną. To jest mylące:
wybierz jako etykietę wartości w szyku
Oto przedmiot:
{
"type": "select",
"name": "Service",
"value": "Service 3",
"values": [ "Service 1", "Service 2", "Service 3", "Service 4"]
}
HTML (działający):
<select><option ng-repeat="value in prop.values">{{value}}</option></select>
a następnie próbuję dodać atrybut ng-option wewnątrz elementu select, aby ustawić prop.value
jako opcję domyślną (nie działa).
ng-options="(prop.value) for v in prop.values"
Co ja robię źle?
ng-option
jest zastąpienie<option ng-repeat="value in prop.values">{{value}}</option>
ponownie dzięki<select ng-model="limit" value="10" ng-options="v for v in [5,10,15,20,30,50]"></select>
Dokumentacja kątowa dla select * nie odpowiada wprost na to pytanie, ale tak jest. Jeśli spojrzysz na
script.js
, zobaczysz to:To jest html:
Wydaje się, że jest to bardziej oczywisty sposób domyślnego ustawienia wybranej wartości na
<select>
withng-options
. Będzie również działać, jeśli masz różne etykiety / wartości.*
To pochodzi z Angular 1.2.7źródło
Ta odpowiedź jest bardziej przydatna, gdy przenosisz dane z bazy danych, wprowadzasz modyfikacje, a następnie utrwalasz zmiany.
Sprawdź przykład tutaj:
http://plnkr.co/edit/HrT5vUMJOtP9esGngbIV
źródło
źródło
Jeśli twoja tablica obiektów jest złożona, na przykład:
Twój obecny model był ustawiony na coś takiego:
Pomogło to w użyciu
track by
funkcji na uuid (lub jakimkolwiek unikalnym polu), o ile ng-model = "user.friend" również ma uuid:źródło
Zmagałem się z tym przez kilka godzin, więc chciałbym dodać do tego kilka wyjaśnień, wszystkie przytoczone tutaj przykłady odnoszą się do przypadków, w których dane są ładowane z samego skryptu, a nie z usługi lub bazy danych, więc chciałbym przekazać moje doświadczenie każdemu, kto ma ten sam problem, co ja.
Zwykle zapisujesz tylko identyfikator żądanej opcji w swojej bazie danych, więc ... pokażmy to
service.js
controller.js
Wreszcie częściowy html model.html
w zasadzie chciałem wskazać ten element „ model.id_model jako model.name dla modelu w modelach ”, „ model.id_model ” używa identyfikatora modelu dla wartości, aby można było dopasować go do „ mainObj.id_model ”, który jest również „ selected_model ”, to tylko zwykła wartość, również „ as model.name ” to etykieta dla repeatera, wreszcie „ model in models ” to zwykły cykl, o którym wszyscy wiemy.
Mam nadzieję, że to komuś pomoże, a jeśli tak, zagłosuj za: D
źródło
mainObj.id_model
bezpośrednio (ng-model="mainObj.id_model"
), zamiast używać zmiennejselected_model
Po prostu dodaj opcję z pustą wartością. To będzie działać.
DEMO Plnkr
źródło
<option value="" disabled>Please Select</option>
Łatwiejszym sposobem jest użycie data-ng-init w następujący sposób:
Główna różnica polega na tym, że musisz uwzględnić
data-ng-model
źródło
Ng model zestawów atrybutów wybranej opcji, a także pozwala na zamontowanie filtra jak orderby: orderModel.value
index.html
controllers.js
źródło
angular.js:117 TypeError: a.forEach is not a function
. jakieś pomysły?Jeśli ktoś korzysta z wartości domyślnej, która czasami nie jest wypełniana na stronie w przeglądarce Chrome, IE 10/11, Firefox - spróbuj dodać ten atrybut do pola wejściowego / wyboru, sprawdzając wypełnioną zmienną w kodzie HTML, na przykład:
źródło
Naprawdę proste, jeśli nie zależy ci na indeksowaniu opcji za pomocą jakiegoś numerycznego identyfikatora.
Zadeklaruj swoją tablicę $ scope var - people
W DOM o powyższym zakresie utwórz obiekt
W kontrolerze ustawiasz model ng-model „zatrudniony”.
Powodzenia!!! To naprawdę proste!
źródło
Podsumowując, zrobiłem coś takiego.
źródło