Angularjs 为什么我使用ngRepeat得到一个空选项(第一个)?
第一个选项如下所示:Angularjs 为什么我使用ngRepeat得到一个空选项(第一个)?,angularjs,angularjs-ng-repeat,html-select,Angularjs,Angularjs Ng Repeat,Html Select,第一个选项如下所示: <option value="? number:0 ?"></option> 当绑定到ng model变量的值与任何选项值不匹配时,将通过ajax调用填写form.questions: ng-model="abCtrl.form.questionSel.q1.index" 重要: 与问题比较。索引是严格的:类型也必须匹配 当您使用重复选项而不是ng options时,即当您写入value=“{{question.index}}”时,选项的值将变为
<option value="? number:0 ?"></option>
当绑定到
ng model
变量的值与任何选项值不匹配时,将通过ajax调用填写form.questions:
ng-model="abCtrl.form.questionSel.q1.index"
重要:
与问题比较。索引
是严格的:类型也必须匹配
当您使用重复选项而不是ng options
时,即当您写入value=“{{question.index}}”
时,选项的值将变为字符串。因此,ng model
中的变量值是一个数字不匹配,您将得到一个空选项
使用ng options
可以避免此问题,因为可以为选项绑定字符串以外的其他类型:
<select name="..." ng-model="abCtrl.form.questionSel.q1.index" ng-options="question.index as question.val for question in abCtrl.form.questions">
</select>
不,这不是因为这个原因,即使我改为“.form.questions.index”也不行。类型也应该匹配。根据生成的空选项,您的索引是数字。那么我该怎么办?很抱歉,我没有发现我使用了ng选项,但是因为我有两个选择,具有相同的选项,并且两个选择不能具有相同的选择选项,所以建议我在选项标记
中使用ng repeat,因为我将未设置的变量绑定在ng model
中。看见index
属性是一个数字,这就是为什么它与ngRepeat
ng-model="abCtrl.form.questionSel.q1.index"
<select name="..." ng-model="abCtrl.form.questionSel.q1.index" ng-options="question.index as question.val for question in abCtrl.form.questions">
</select>