angular ng-options select不选择当前值作为选择值

时间:2014-08-06 00:11:34

标签: javascript angularjs ng-options

我有一个选择,我在哪里设置ng模型和选项列表。当我更新值时,它在范围内更新正常,但是当我尝试重新加载页面时,它不会以选择的正确值开始。

<select ng-change="updateSelectedNotification()"
ng-model="selectedNotification.notification_type"
ng-options="type.name for type in notificationTypes"
class="chosen-select"></select>

1 个答案:

答案 0 :(得分:1)

问题是您没有将选择初始化为您设置的选项。幸运的角度为您提供了使用ng-init指令执行此操作的方法。

<select
    ng-change="updateSelectedNotification()"
    ng-model="selectedNotification.notification_type"
    ng-options="type.value as type.name for type in notificationTypes track by $index"
    ng-init="selectedNotification.notification_type = selected"
    class="chosen-select">
</select>

$scope.selected = (your persisted value of type.value);

注意ng-options中的曲目。基本思想是使用ng-init将模型设置为ng-options中的一个值。您也可以始终将值设置为数组中的第一个项目,而不是像第一个选项那样使用空白。

ng-init="selectedNotification.notification_type = notificationTypes[0]"

确保在生成标记时匹配为每个选项标记分配的值。您可以使用ng-options为type.value作为type.name执行此操作。这会将value属性设置为type.value,将文本设置为type.name。因此,如果你有持久值,你可以在你的viewmodel中分配它,如上所示。