Angularjs默认选择选定的值

时间:2015-07-19 16:42:15

标签: angularjs select ng-repeat

我使用ng-repeat生成一个表,循环用户提交的数据。在ng-repeat里面我有一个字段,一个选择,我用另一个ng-repeat来构建一个类型列表。这也会产生适当的选择。但是,我无法弄清楚如何将选择默认为用户的值;例如用户选择书籍作为类型,当用户重新加载页面时,我希望选择具有" book"预选。

<tr ng-repeat="item in userData" ng-include="'templates/bookmarkrow.html'"></tr>
...
<select ng-model="item.type" ng-options="option.name for option in typeOptions track by option.value" class="form-control hidden"></select>

我认为ng-model会将select绑定到item.type的值。有什么想法吗?

其他详细信息

typeOptions是一个对象数组;例如[{&#39; name&#39;:&#39; some name&#39;,&#39; value&#39;:&#39; some value&#39;,...}]。至于数据,我知道AngularJS不存储数据。在此示例中假设数据来自数据存储;无论是数据库还是本地存储。更重要的是,我将在客户端加载数据,并希望在选择中指明它。

2 个答案:

答案 0 :(得分:2)

由于角度不会在页面重新加载时保持数据,因此在完全重新加载时数据将丢失。如果您使用的是角度路由或ui-router,那么您可以将数据保存在单个工厂中。

要跨页面重新加载保存数据,您可以(如上所述)使用本地存储,Cookie或将其存储在应用程序的后端。

要初始化一个值,您可以使用ng-init

答案 1 :(得分:0)

我重写了我的代码,在选项上使用ng-repeat,而不是在select上使用ng-options。之后,我在选项上使用了ng-selected来决定选择哪个选项。

<select class="form-control hidden">
    <option selected-value="{{option.value}}" ng-selected="{{item.type == option.value}}" ng-repeat="option in typeOptions">{{option.name}}</option>
</select>