Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度选择不工作_Javascript_Angularjs - Fatal编程技术网

Javascript 角度选择不工作

Javascript 角度选择不工作,javascript,angularjs,Javascript,Angularjs,控制器 $scope.formData = {}; $scope.formData.cars = {}; $scope.formData.cars.list = [ { id: 1, name: 'vw 2'}, { id: 2, name: 'vw 1'} ]; $scope.formData.cars.selected = $scope.formData.cars.list[0]; html 有人能解释为什么这会添加第三个空白元素以及为什么第一个属性(vw 2)不是默认

控制器

$scope.formData = {};
$scope.formData.cars = {};
$scope.formData.cars.list = [
    { id: 1, name: 'vw 2'},
    { id: 2, name: 'vw 1'}
];
$scope.formData.cars.selected = $scope.formData.cars.list[0];
html



有人能解释为什么这会添加第三个空白元素以及为什么第一个属性(
vw 2
)不是默认值吗?

您不应该使用对象来设置所选值,因为您使用的是汽车的值“id”

因此,请这样做:

 $scope.formData = {};
 $scope.formData.cars = {};
 $scope.formData.cars.list = [
                        { id: 1, name: 'vw 2'},
                        { id: 2, name: 'vw 1'}
                    ];
$scope.formData.cars.selected = $scope.formData.cars.list[1].id;

<select id="bookingCars" class="form-control" ng-model="formData.cars.selected" ng-options="car.id as car.name for car in formData.cars.list">
$scope.formData={};
$scope.formData.cars={};
$scope.formData.cars.list=[
{id:1,名称:'vw 2'},
{id:2,名称:'vw 1'}
];
$scope.formData.cars.selected=$scope.formData.cars.list[1].id;

如果要使用整个对象作为值,以下操作将起作用:

 {{formData.cars.selected}} -      {{formData.cars.selected.id}}
 <select id="bookingCars" class="form-control" ng-model="formData.cars.selected" 
 ng-options="c.name for c in formData.cars.list">
{{formData.cars.selected}-{{formData.cars.selected.id}
试试这个:

ng-options="car as car.name for car in formData.cars.list"
而且它应该是有效的

您正在使用表单
中的
ngOption
作为数组中值的标签。说:

选择:此表达式的结果将绑定到的模型 父元素。如果未指定,将选择表达式 默认为值

这意味着您希望您的
select
零件成为一个对象,但是您提供了一个字符串
car.code

ng-options="car as car.name for car in formData.cars.list"