J'ai vu la documentation de la directive de sélection angulaire ici: http://docs.angularjs.org/api/ng.directive:select . Je ne peux pas comprendre comment définir la valeur par défaut. Ceci est déroutant:
sélectionner comme étiquette pour la valeur dans le tableau
Voici l'objet:
{
"type": "select",
"name": "Service",
"value": "Service 3",
"values": [ "Service 1", "Service 2", "Service 3", "Service 4"]
}
Le html (fonctionnant):
<select><option ng-repeat="value in prop.values">{{value}}</option></select>
puis j'essaye d'ajouter un attribut ng-option à l'intérieur de l'élément select à définir prop.value
comme option par défaut (ne fonctionne pas).
ng-options="(prop.value) for v in prop.values"
Qu'est-ce que je fais mal?
ng-option
remplace à<option ng-repeat="value in prop.values">{{value}}</option>
nouveau les remerciements<select ng-model="limit" value="10" ng-options="v for v in [5,10,15,20,30,50]"></select>
La documentation angulaire de select * ne répond pas explicitement à cette question, mais elle est là. Si vous regardez le
script.js
, vous verrez ceci:C'est le html:
Cela semble être une manière plus évidente de définir par défaut une valeur sélectionnée sur un
<select>
avecng-options
. Cela fonctionnera également si vous avez des étiquettes / valeurs différentes.*
Ceci est de Angular 1.2.7la source
Cette réponse est plus utile lorsque vous importez des données à partir d'une base de données, effectuez des modifications, puis persistez les modifications.
Consultez l'exemple ici:
http://plnkr.co/edit/HrT5vUMJOtP9esGngbIV
la source
la source
Si votre tableau d'objets est complexe comme:
Et votre modèle actuel a été défini sur quelque chose comme:
Cela a aidé à utiliser la
track by
fonction sur uuid (ou n'importe quel champ unique), tant que ng-model = "user.friend" a également un uuid:la source
J'ai eu du mal avec cela pendant quelques heures, alors je voudrais ajouter quelques clarifications à ce sujet, tous les exemples notés ici, se réfèrent à des cas où les données sont chargées à partir du script lui-même, pas quelque chose venant d'un service ou d'une base de données, je voudrais donc partager mon expérience avec toute personne ayant le même problème que moi.
Normalement, vous enregistrez uniquement l'id de l'option souhaitée dans votre base de données, alors ... montrons-le
service.js
controller.js
Enfin le modèle partiel html.html
fondamentalement, je voulais pointer cette pièce " model.id_model comme model.name pour le modèle dans les modèles " le " model.id_model " utilise l'id du modèle pour la valeur afin que vous puissiez correspondre avec le " mainObj.id_model " qui est également le " selected_model ", c'est juste une valeur simple, aussi " as model.name " est le libellé du répéteur, enfin " model in models " est juste le cycle régulier que nous connaissons tous.
J'espère que cela aide quelqu'un, et si c'est le cas, veuillez voter: D
la source
mainObj.id_model
directement (ng-model="mainObj.id_model"
), plutôt que d'utiliser une variable 'placeholder / plain value'selected_model
Ajoutez simplement une option avec une valeur vide. Ça va marcher.
DÉMO Plnkr
la source
<option value="" disabled>Please Select</option>
Un moyen plus simple de le faire est d'utiliser data-ng-init comme ceci:
La principale différence ici est que vous devrez inclure
data-ng-model
la source
L' attribut ng-model définit l'option sélectionnée et vous permet également de diriger un filtre comme orderBy: orderModel.value
index.html
controllers.js
la source
angular.js:117 TypeError: a.forEach is not a function
. Des pensées?Si quelqu'un rencontre parfois la valeur par défaut qui n'est pas renseignée sur la page dans Chrome, IE 10/11, Firefox - essayez d'ajouter cet attribut à votre champ de saisie / sélection en vérifiant la variable renseignée dans le HTML, comme ceci:
la source
Vraiment simple si vous ne vous souciez pas d'indexer vos options avec un identifiant numérique.
Déclarez votre tableau $ scope var - people
Dans le DOM de la portée ci-dessus, créez un objet
Dans votre contrôleur, vous définissez votre ng-modèle "embauché".
Bonne chance!!! C'est vraiment simple!
la source
Juste pour ajouter, j'ai fait quelque chose comme ça.
la source