Javascript 无法在页面刷新时设置角度选择的选定值
页面刷新时未设置my angularjs select的选定值Javascript 无法在页面刷新时设置角度选择的选定值,javascript,angularjs,Javascript,Angularjs,页面刷新时未设置my angularjs select的选定值 如果我导航到另一个视图,然后再次导航回来,则会设置 select的模型保存到本地存储,并初始化到作用域onload中 我已经检查了范围中的数据在两种情况下是否相同,即来回导航和刷新页面。数据完全相同 经过大量调查,我发现当选择是原始的,或当页面刷新时,,选择列表将有一个额外的空白选项,就像下面第一个值为?的选项: <select ng-model="question.answer" class="form-control"
- 如果我导航到另一个视图,然后再次导航回来,则会设置
- select的模型保存到本地存储,并初始化到作用域onload中
- 我已经检查了范围中的数据在两种情况下是否相同,即来回导航和刷新页面。数据完全相同
?
的选项:
<select ng-model="question.answer" class="form-control" ng-options="opt as opt.value for opt in question.options" >
<option value="?" selected="selected"></option>
<option value="0">1</option>
<option value="1">2</option>
</select>
我的理解是,在ng options
中,第一个opt
指定这是应分配给ng model
中指定变量的值。换句话说,我将把选项数组中的一个对象分配给question.answer
,而不仅仅是值。通过查看模型,我可以看出情况就是这样
但我不确定Angular将如何使用question.model
中的值来确定哪个选项被设置为选中
我想知道这个问题是否与选项的值被设置为question.options的索引这一事实有关,它无法从question.answer
中得出答案是哪个索引
所以,我想我的问题是:
-当存在此额外的
时,为什么没有设置正确的选项?
-Angular如何确定如何使用模型设置所选选项(aka-选项值中那些有趣的索引是什么?)
对不起,这篇文章太长了。谢谢你的阅读
更新:
使用Chrome AngularJS Batarang扩展名,选择列表设置为question.answer
的值如下:
{
$ref: $["options"][1]
}
这意味着选取列表的值为“2”
这就是它使用期权指数的方式,但这就是我设置模型的方式吗?i、 e.使用
$ref
等?我在看了你在做什么之后编辑了答案
ng options属性有一个track by expression,可以执行您所说的操作:
ng-options="opt as opt.Value for opt in question.options track by opt.id"
查看更新的提琴:我在查看了您的操作后编辑了答案 ng options属性有一个track by expression,可以执行您所说的操作:
ng-options="opt as opt.Value for opt in question.options track by opt.id"
查看更新的提琴:我在查看了您的操作后编辑了答案 ng options属性有一个track by expression,可以执行您所说的操作:
ng-options="opt as opt.Value for opt in question.options track by opt.id"
查看更新的提琴:我在查看了您的操作后编辑了答案 ng options属性有一个track by expression,可以执行您所说的操作:
ng-options="opt as opt.Value for opt in question.options track by opt.id"
查看更新的小提琴:您缺少一个“在form controlCheers@M21B8的末尾。这只是因为对本例进行了编辑。真正的代码是有效的。我已经编辑了我的问题。我想可能是这样的,只是想检查一下!当您使用
ng options
时,不要硬编码任何
元素,除了带有空值的
,空值表示“未选择”。嗨,黑洞。我没有硬编码任何
元素。我可能没有说清楚,但问题中显示的html是我在ChromeDevTools中查看的输出。我只是在用一个普通的
。我将更新我的问题以澄清这一点。你错过了一个“在form controlCheers@M21B8的末尾。这只是因为对本例进行了编辑。真正的代码是有效的。我已经编辑了我的问题。我想可能是这样的,只是想检查一下!当您使用ng options
时,不要硬编码任何
元素,除了带有空值的
,空值表示“未选择”。嗨,黑洞。我没有硬编码任何
元素。我可能没有说清楚,但问题中显示的html是我在ChromeDevTools中查看的输出。我只是在用一个普通的
。我将更新我的问题以澄清这一点。你错过了一个“在form controlCheers@M21B8的末尾。这只是因为对本例进行了编辑。真正的代码是有效的。我已经编辑了我的问题。我想可能是这样的,只是想检查一下!当您使用ng options
时,不要硬编码任何
元素,除了带有空值的
,空值表示“未选择”。嗨,黑洞。我没有硬编码任何
元素。我可能没有说清楚,但问题中显示的html是我在ChromeDevTools中查看的输出。我只是在用一个普通的
。我将更新我的问题以澄清这一点。你错过了一个“在form controlCheers@M21B8的末尾。这只是因为对本例进行了编辑。真正的代码是有效的。我已经编辑了我的问题。我想可能是这样的,只是想检查一下!当您使用ng options
时,不要硬编码任何
元素,除了带有空值的
,空值表示“未选择”。嗨,黑洞。我没有硬编码任何
元素。我可能没有说清楚,但问题中显示的html是我在ChromeDevTools中查看的输出。我只是在用一个普通的
。我将更新我的问题以澄清这一点。