2016-09-13 1 views
1

binde Ich versuche, ein einfaches Dropdown-Menü mit einer Suche darin zu tun. Ich kann das ng-Modell in diesem Dropdown nicht ändern. Dies ist, was ich getan habe, und wie Sie sehen können, ist es sehr einfach (meist kopieren Paste aus dem Anfang)Ui-select ng-Modell ist nicht mit ausgewählten

Ich konnte keine Informationen über die $ select finden. Liegt das Problem daran, dass ich das nicht zum ng-Modell hinzugefügt habe? wenn ja, was soll ich mit dem Controller hinzufügen

<div class="form-group"> 
<label class="col-md-1">Investigation type<font color="red"><b>*</b></font></label> 
    <div class="col-md-3"> 
     <ui-select ng-model="investigationType" ng-change="someFunc()" theme="bootstrap"> 
     <ui-select-match placeholder="Select or search a contries in the list..."> 
      <span>{{$select.selected.name}}</span> 
     </ui-select-match> 
      <ui-select-choices repeat="item in contries | filter: $select.search"> 
       <div ng-bind-html="item.name | highlight: $select.search"></div> 
      </ui-select-choices> 
     </ui-select> 
    </div> 
</div> 

{{investigationType}} 

wie Sie, sehr einfache Sache sehen können, obwohl nach dem ausgewählten ich sehe auf der Seite etwas nicht. Was ist los mit dir?

app.controller('investigationCtrl', ['$scope', '$http', function ($scope, $http) { 

    $scope.investigationType =""; 
    $scope.toolShow=false; 

    $scope.someFunc = function() { 
     $scope.investigationType == "Alabama") 
      $scope.toolShow = true; 
     else 
      $scope.toolShow = false; 
    } 

    $scope.contries = [ 
     { id: 1, name: "Alabama" }, 
     { id: 2, name: "Alaska" }, 
     { id: 3, name: "Arizona" }, 
     { id: 4, name: "Arkansas" }]; 
}]); 

Antwort

2

Sie benötigen ng-model, um das ausgewählte Objekt zu halten, keine Zeichenfolge.

Auf ng-model="contries.selected" umschreiben (während contries ist Daten Array).

Fügen Sie dann {{contries.selected}} zu Ihrer Vorlage hinzu. Sie sehen eine Serialisierung Ihres ausgewählten Objekts. Verwenden Sie einfach contries.selected.name, um auf Ihren Artikelnamen zuzugreifen.

Here is a working plunk

Sie können auch so etwas wie tun

ng-change="someFunc($select.selected)" 

Um die ausgewählte Objekt aus dem callaback zugreifen, dann können Sie mit den ng-model vermeiden Unordnung.

Verwandte Themen