这是我的Html:
<select ng-options="value.name for (key, value) in countries track by key" ng-model="selected" >
</select>
这就是我试图处理的对象:
$scope.countries = {
"AFG":{"name":"Afghanistan"},
"ALB":{"name":"Albania"}
};
$scope.countriesKeys = Object.keys($scope.countries);
$scope.selected = ????;
我的问题是,我无法使ng-model
选择工作,对象的结构使其难以工作。。(无法更改对象(。
最后,我的目的是用第一个选择的选项"ALB":{"name":"Albania"}
使<select>
成为动态的,这样当我按下其他选项使$scope.selected
发生变化时。
您可以尝试以下行:
$scope.selected={"name":"Albania"}
var app = angular.module("myApp", []);
//controller
app.controller('MainCtrl', function($scope) {
$scope.countries = {
"AFG":{"name":"Afghanistan"},
"ALB":{"name":"Albania"}};
$scope.countriesKeys=Object.keys($scope.countries);
$scope.selected="ALB";
$scope.changeSelected = function(newSelected){
$scope.selected=newSelected;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myApp">
<div class="div1" ng-controller="MainCtrl">
{{selected}}
<select ng-options="key as value.name for (key, value) in countries" ng-change="changeSelected(selected)" ng-model="selected"></select>
</div>
</body>
var getKeyByValue = function( value,array1 ) {
for( var prop in array1 ) {
if( array1.hasOwnProperty( prop ) ) {
if( array1[ prop ] === value )
return prop;
}
}
我已将此功能添加到我的控制器中
getKeyByValue($scope.selected,$scope.countries)
现在我有了<option>
中的值和密钥感谢每一位尽力提供帮助的人我的主要问题是添加了"item as value.name…">