2017-03-26 5 views
0

私はanglejの値を持つhtmlのselectタグを持っています。値を選択するたびに、選択タグは空になります。どうして?それを修正するには?上記のコードでanglejsで値を選択すると、htmlのタグ値が選択されなくなります

$scope.getAll = function(){ 
    $http.post().... 
    $scope.places = response.data; 
}; 

$scope.getAll(); 

$scope.sample = function(str){ 
    alert(str); 
}; 

HTML

<select ng-model="val" ng-change="sample(val)"> 
    <option ng-repeat="place in places" value="place.name">{{place.name}}</option> 
</select> 

、私はそれが私の価値を警告するが、selectタグが空になっselectタグのいくつかの値を選択したときに!

答えて

2

私はそれがスマートな答えだからng-repeat使用ng-options

angular.module("app",[]) 
 
.controller("ctrl",function($scope){ 
 

 
$scope.places = [ {name: 'California'}, 
 
          {name: 'New York'}, 
 
          {name: 'Cochin'} 
 
         ]; 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="ctrl"> 
 
<select ng-model="val" ng-change="sample(val)" ng-options="place.name as place.name for place in places"> 
 
</select> 
 
{{val}} 
 
</div>

+0

投票アップを使用する代わりにお勧めします。ああ、あなたの4,000ポイントを得ました:) – M98

2

オプションの値を式として設定する場合は、ng-valueを試してみてください。 あなたの質問が混乱している間、私は警告がplace.name

<select ng-model="val" ng-change="sample(val)"> 
    <option ng-repeat="place in places" ng-value="place.name">{{place.name}}</option> 
</select> 

または選択した属性自体の値を設定したい場合は、あなたが使用することができ、

<select ng-model="val" ng-change="sample(val)"> 
    <option ng-repeat="place in places" value="{{place.name}}">{{place.name}}</option> 
</select> 

として表示されることを推測していますhttps://plnkr.co/edit/fAbqV1wG2VuF069lt3bm?p=preview

これはあなたをさらに案内するかもしれません。

関連する問題