2017-01-04 98 views
0

我想通过将值设置为ng模型来选择我的AngularJS函数中的下拉值。但是当我在HTML中查找时,下拉菜单首先选择空白值。这是我的HTML无法使用ng-model选择下拉值第一项被选为空白

<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> 

这是控制器

$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 
} 

这是我的加载选作第一个空值在我的角度JS功能。我想要单值/多个值填充取决于details.employee中的值我要去哪里错了。

回答

1

纠正你的语法ngOptions

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

工作演示:

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

我想动态地设置'$ scope.test',它可以包含0或ABC的值。根据你的答案,它会失败ABC – Praveen

+0

Check我更新后的答案也适用于ABC。 –

0

您定义的错误ng-options

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

所以更改:

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

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

现在如你预期它会工作。见的jsfiddle link

+0

我得到错误,当我使用这个语句。 – Praveen

+0

你有什么错误?它在这里为我工作。 –

+0

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