使用模型

时间:2016-02-25 09:33:42

标签: angularjs select angular-ngmodel

我遇到了select tag和ngmodel的问题。模型中变量的值未在下拉列表中的选项中表示。

以下是代码:

<select ng-model="number">
  <option values="5">5</option>
  <option values="10">10</option>
  <option values="20">20</option>
  <option values="25">25</option>
</select>

其中number在控制器中定义为20.

编译后,添加以下HTML:

<option value="? undefined:undefined ?"></option>

注:

我还在HTML视图中提供了number,并且在表达式{{number}}中显示数字没有问题 - 然后它会正确显示。

这是一个plnkr:

http://plnkr.co/edit/IXfwByE5ZrA4y7z0y6mh?p=preview

4 个答案:

答案 0 :(得分:1)

你可以试试这种方式

<select name="mydata" ng-model="number" 
    ng-options="value for value in [5,10,20,25]">
</select>
控制器中的

$scope.number = 20;

答案 1 :(得分:1)

  

如果ngModel的viewValue与任何选项都不匹配,那么   控件将自动添加一个“未知”选项,然后它   在不匹配得到解决时删除。

文档here

通常情况下,如果模型的值与其中一个选项的值匹配,则angular将选择一个选项。

10是值10和数据类型字符串,其中$ scope.number = 10使得它的数值类型为10。

因此模型的价值不匹配。

在控制器中尝试$ scope.number ='10',它会起作用。

答案 2 :(得分:0)

你有 $ scope.number = 5 。你应该

$scope.number = '5'   // a string. Change 5 to '5'

答案 3 :(得分:0)

$scope.number = 5+""; 

在控制器中添加此语句而不是$ scope.number = 5,因为option的值为string