I've die Dokumentation der Angular select Richtlinie hier gesehen: http://docs.angularjs.org/api/ng.directive:select. Ich kann nicht herausfinden, wie man den Standardwert setzt. Dies ist verwirrend:
select als Label für Wert in Array
Hier ist das Objekt:
{
"type": "select",
"name": "Service",
"value": "Service 3",
"values": [ "Service 1", "Service 2", "Service 3", "Service 4"]
}
Die html (funktioniert):
<select><option ng-repeat="value in prop.values">{{value}}</option></select>
und dann versuche ich, ein ng-option-Attribut innerhalb des select-Elements hinzuzufügen, um "prop.value" als Standardoption festzulegen (funktioniert nicht).
ng-options="(prop.value) for v in prop.values"
Was mache ich falsch?
Angenommen, das Objekt befindet sich in Ihrem Bereich:
<div ng-controller="MyCtrl">
<select ng-model="prop.value" ng-options="v for v in prop.values">
</select>
</div>
function MyCtrl($scope) {
$scope.prop = {
"type": "select",
"name": "Service",
"value": "Service 3",
"values": [ "Service 1", "Service 2", "Service 3", "Service 4"]
};
}
Arbeitsplunkr: http://plnkr.co/edit/wTRXZYEPrZJRizEltQ2g
In der Angular-Dokumentation für select* wird diese Frage nicht explizit beantwortet, aber sie ist vorhanden. Wenn Sie sich die script.js
ansehen, werden Sie dies sehen:
function MyCntrl($scope) {
$scope.colors = [
{name:'black', shade:'dark'},
{name:'white', shade:'light'},
{name:'red', shade:'dark'},
{name:'blue', shade:'dark'},
{name:'yellow', shade:'light'}
];
$scope.color = $scope.colors[2]; // Default the color to red
}
Dies ist die html:
<select ng-model="color" ng-options="c.name for c in colors"></select>
Dies scheint ein offensichtlicherer Weg zu sein, um einen ausgewählten Wert bei einem <select>
mit ng-options
voreinzustellen. Es wird auch funktionieren, wenn Sie verschiedene Bezeichnungen/Werte haben.
*" Dies ist von Angular 1.2.7