【发布时间】:2016-01-19 12:31:48
【问题描述】:
在角度我有一个选择元素及其模型:
<select class="form-control" name="items" id="items" ng-model="myModel">
<option value ="10">10</option>
<option value ="20">20</option>
<option value ="30">30</option>
</select>
{{myModel}}
在我的控制器中,我有:
$scope.myModel = "20";
页面加载时{{myModel}}等于20,但是选择框是空的,而不是显示20。稍后,如果我更改该框的值,{{myModel}} 值也会更改。它似乎正确绑定。但是如何在页面加载时显示正确的值(以及为什么会发生这种情况?)
这里是plnkr 以查看实际问题
【问题讨论】:
-
我尝试创建一个plunker 来重新创建您的问题,并且您在此处发布的代码可以正常工作。
-
就目前而言,您的代码不会重现您建议您正在看到的行为。需要更多代码来识别项目中的不同之处。
-
如果我不得不猜测这个问题,我认为这可能与
myModel是一个原语而不是一个有范围的对象有关继承问题,特别是如果此代码位于ng-repeat中。 -
ng-repeat以外的其他内容可能会导致原语的范围问题,ng-if和ng-include是另外两个创建子范围的常用指令。考虑将您的模型更改为一个对象,即myModel到myModel.optionValue或类似的东西,看看它是否能解决您的问题。 -
我现在正在尝试查看您的案例...我可以看到问题在于角度将您的模型解释为一种情况下的数字和另一种情况下的字符串,但我目前尚不清楚为什么或如何发生这种情况。