Javascript ng选择不更新下拉列表angularjs

Javascript ng选择不更新下拉列表angularjs,javascript,html,angularjs,angularjs-ng-repeat,Javascript,Html,Angularjs,Angularjs Ng Repeat,我一直在AngularJS中工作,在执行以下功能时,我仍然得到一个空选项作为select元素的第一个子元素 这是我的HTML代码片段 <select id="connectTV" aria-label="How many Dish TVs" ng-model="connectTVs.index" ng-change="onChangeMethod(connectTVs.index)" class="selector" aria-required="true">

我一直在AngularJS中工作,在执行以下功能时,我仍然得到一个空选项作为select元素的第一个子元素

这是我的HTML代码片段

<select id="connectTV" aria-label="How many Dish TVs" ng-model="connectTVs.index" ng-change="onChangeMethod(connectTVs.index)" class="selector" aria-required="true">
           <option  ng-repeat="noOfTV in noOfTVs" ng-value="noOfTV.index" ng-selected="noOfTV.index == connectTVs.index">{{noOfTV.value}}</option>
</select>
最后,这里是生成的HTML,它具有

<option value="? number:4 ?"></option>


获取空选项作为select元素的第一个子元素。我哪里做错了?有人能帮上忙吗?

您可以使用
ng选项
进行选择,而不是
ng重复
。前者对于较大的阵列集具有更好的性能,并提供了更大的灵活性

    value: 'How many Dish TVs?'
}
var-app=angular.module('myApp',[])
应用程序控制器('myCtrl'[
“$scope”,
职能($范围){
$scope.noOfTVs=[{
索引:0,
价值:“有多少台碟形电视?”
}, {
索引:1,
值:“连接1碟电视”
}, {
索引:2,
值:“连接2台碟式电视”
}, {
索引:3,
值:“连接3台碟式电视”
}, {
索引:4,
值:“连接4台碟式电视”
}, {
索引:5,
值:“连接5台碟式电视”
}, {
索引:6,
值:“连接6台碟式电视”
}, {
索引:7,
值:“连接7碟电视”
}, {
索引:8,
值:“连接8台碟式电视”
}];
$scope.connectTVs=$scope.noOfTVs[0];
$scope.onChangeMethod=函数(){
//做一些动作
console.log($scope.connectTVs)
}
}
])

发生这种情况是因为您的
select
上初始绑定的
ngModel
未定义

ng model=“connectTVs.index
$scope.connectTVs不存在

适合您的问题的最快解决方案是添加:

$scope.connectTVs = {
    index: 0, 
$scope.onChangeMethod=函数(connectTVsIndex){

} 最后,这里是生成的HTML,它具有

在此处输入图像描述

将空选项作为select元素的第一个子元素。我哪里做错了?有人能帮我吗

    value: 'How many Dish TVs?'
}
但是我想补充一点,在这种对象中添加索引属性是无用的,因为您可以使用
$index
在视图中访问它


工作演示:

您好,我已经在plunker中给出了您的答案,但我仍然可以看到在选择下拉列表时出现一些错误…将下拉列表值从5、3、8、默认值连续更改,您将看到下拉列表值没有更改change@UI_Dev我已经更新了代码。问题出在ng change函数中,没有必要重新分配ng模型值,索引因此而更改。您可以直接访问函数调用中的选定值。我再次看到问题。您可以检查更新的代码一次吗?选择6下拉列表,然后选择1,然后转到多少电视,但我仍然无法选择第一个下拉列表
    value: 'How many Dish TVs?'
}