2017-01-04 5 views
0

Ich versuche, meinen Dropdown-Wert innerhalb einer AngularJS-Funktion auszuwählen, indem ich den Wert auf das ng-Modell festlege. Aber wenn ich im HTML nachschaue, kommt das Drop-down mit dem zuerst gewählten Leerwert. Das ist mein HTMLDropdown-Wert kann mit ng-model nicht ausgewählt werden Das erste Objekt wird als leer ausgewählt

<select class="pulldown" ng-model="test" ng-options="obj as obj.desc for identifier track by obj.value" ></select> 
     <td><span style="padding-left:1px"></td></td></td> 

Das ist mein Eckige JS Funktion in der Steuerung ist

$scope.modify = function(details){ 
$scope.identifier = [{"value" : "0","desc":"single"},{"value":"ABC","desc":""multiple"}] 
$scope.test = details.employee ; 
// Here details.employee can be ABC or 1 .Depending upon this ABC/1 I am trying to populate my HTML as Single/Multiple 
} 

Dies wird mich mit leeren Wert als erstes ausgewählten Laden. Ich möchte, dass der Wert Single/multiple je nach Wert in details.employee gesetzt wird, wo ich falsch liege.

Antwort

1

korrigieren Sie Ihre ngOptions Syntax:

<select ng-options='obj.value as obj.desc for obj in identifier' ng-model='test'></select> 

Arbeits Demo:

var myApp = angular.module('myApp',[]); 
 

 

 
function MyCtrl($scope) { 
 
    
 
    $scope.identifier = [ 
 
    {value : "0",desc:"single"}, 
 
    {value:"ABC",desc:"multiple"} 
 
    ]; 
 
    
 
    $scope.test = $scope.identifier[0].value; 
 
    
 
    $scope.getVal = function(test) { 
 
     console.log(test); 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="MyCtrl"> 
 
    <select ng-model='test' ng-options='obj.value as obj.desc for obj in identifier' ng-change="getVal(test)"></select> 
 
</div>

+0

Ich möchte den '$ scope.test' dynamisch festlegen. Es kann Wert als 0 oder ABC enthalten. Nach Ihrer Antwort würde es für ABC – Praveen

+0

Überprüfung fehlschlagen Meine aktualisierte Antwort es funktioniert gut für ABC auch. –

0

Sie definiert falsch ng-options:

ng-options="obj as obj.desc for identifier track by obj.value" 

So Ihr Wechsel:

<select class="pulldown" ng-model="test" ng-options="obj as obj.desc for identifier track by obj.value" ></select> 

zu

<select class="pulldown" name="test" ng-model="test" ng-options="obj.value as obj.desc for obj in identifier" > 

Und es wird jetzt funktionieren wie erwartet. Siehe jsfiddle link

+0

Ich erhalte Fehler, wenn ich diese Anweisung verwenden. – Praveen

+0

Welchen Fehler erhalten Sie? Es funktioniert für mich hier. –

+0

angular.min.js: 101 Fehler: [ngOptions: iexp] http://errors.angularjs.org/1.3.3/ngOptions/iexp?p0=obj%20as"