AngularJS - 默认下拉列表选择选项

时间:2014-06-26 02:54:39

标签: angularjs drop-down-menu selectedvalue angular-ngmodel

这个问题困扰着我,因为它似乎很容易解决。

我使用普通的HTML,但数据通过angular传递到下一个视图。

代码片段如下所示:

<span data-ng-show="isCountry()">
  <select class="selectpicker" data-ng-model="age">
    <option value="21">21-24</option>
    <option value="25">25-30</option>
    <option value="31">31 and up</option>
  </select>
</span>

我想要实现的目标: 在角度加载时将<option value="25">25-30</option>作为默认选定选项

我尝试了什么:

  1. <option value="25">25-30</option>具有ng-selected="age"属性

    <span data-ng-show="isCountry()"> <select class="selectpicker" data-ng-model="age"> <option value="21">21-24</option> <option ng-selected="age" value="25">25-30</option> <option value="31">31 and up</option> </select> </span>

  2. <option value="25">25-30</option>具有selected="selected"属性

    <span data-ng-show="isCountry()"> <select class="selectpicker" data-ng-model="age"> <option value="21">21-24</option> <option selected value="25">25-30</option> <option value="31">31 and up</option> </select> </span>

  3. 即使首先显示<option value="25">25-30</option>

    <span data-ng-show="isCountry()"> <select class="selectpicker" data-ng-model="age"> <option value="25">25-30</option> <option value="21">21-24</option> <option value="31">31 and up</option> </select> </span>

  4. 选项2和3会首先显示我想要的value,但不会传递到下一个view

    如果可能的话,我不想触及很多Angular代码,因为主要的开发人员是暂时的...

    任何帮助都将不胜感激。

    谢谢!

2 个答案:

答案 0 :(得分:0)

这里有一个问题,请不要使用&#39; age&#39;作为模型,但尝试使用&#39; user.age&#39;并像这样给它分配值;

var user = {}; user.age = 25;
<select class="selectpicker" data-ng-model="user.age">

它在下一个视图中不起作用的原因是,&#39; age&#39;当你重新分配一个新值时,它就完全消失了。角度监视器变为变量引用,因为变量&#39; age&#39;已经不见了,它不知道何时更新视图。使用&#39; user.age&#39;作为模型,角度正在观看用户&#39;对于更改,如果您更改年龄,Angular将为您更新视图。

答案 1 :(得分:0)

显然,在深入研究代码之后 - age已经通过js函数设置了

a.defaultAge = {
  Country: "25"
}

感谢David的帮助 - 您的评论是good to know,以供将来参考。