用途:
ng-options="selected_type.Id as selected_type.Name for selected_type in types track by selected_type.Id"
// ^
// the object's ID
:代わりの
ng-options="selected_type as selected_type.Name for selected_type in types track by selected_type.Id"
// ^
// the object itself
...
あなたのコールバック関数では、replac E:
var typeID = this.selected_type;
// ^
// the object itself
...によって:
var typeID = this.selected_type.Id;
// ^
// the object's ID
...そして、あなたはすべてのセットです!
フォークされたJSFiddle hereを参照するか、以下のスニペットで遊んでください。
var app = angular.module("app", ["controllers"])
var controllers = angular.module("controllers",[]);
controllers.controller('myController', function($scope){
\t $scope.types = [{
Id: 1,
Name: 'Type1'
}, {
Id: 2,
Name: 'Type2'
}, {
Id: 3,
Name: 'Type3'
}];
$scope.GetValueTypeDropdown = function() {
\t var typeID = this.selected_type.Id;
\t $scope.the_type = $.grep($scope.types, function (selected_type){
\t return selected_type.Id == typeID;
})[0].Name;
console.log($scope.the_type);
return $scope.the_type;
};
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="myController">
<form>
<select name="type" class="col-xs-12 dropdown-list"
ng-model="selected_type" class="col-xs-8"
ng-init="selected_type = types[0]"
ng-options="selected_type as selected_type.Name for selected_type in types track by selected_type.Id"
ng-change="GetValueTypeDropdown()">
</select>
</form>
</div>
</div>
'Id'プロパティは、あなたの値であるので、' SELECTED_TYPE =タイプ[0] .Id'は、あなたがこれに 'NG-options'を変更する必要があり – tymeJV
動作するはずです:' ng-あなたの 'ng-model'はIdではなくタイプそのものなのでtype.Id" 'でタイプするためにtype.Nameとしてタイプします。これを見てください[jsfiddle](https://jsfiddle.net/596tzsh8/14/) – devqon