Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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
Angularjs 为什么我使用ngRepeat得到一个空选项(第一个)?_Angularjs_Angularjs Ng Repeat_Html Select - Fatal编程技术网

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>