5

目前,我正在为 angularjs 中的 ng-options 设置默认值而苦苦挣扎。有人可以帮助我吗?

我从资源中获取选项。

<select id="customer_country" ng-model="customer.country" ng-options="country.name for country in countries" style="width:230px;">
</select>

我目前的解决方法是像这样设置默认值:

 $scope.countries = Country.query(function() {
    $scope.customer.country = $scope.countries[0];
 });

但我不认为这是最好的方法。我搜索了互联网,但没有找到一个好的答案。您将如何分配默认值?

目前我需要它没有空值。此外,有时它不会有空值,也不应该使用模型中的值来更新模型。

4

4 回答 4

6

我自己也遇到过同样的问题,我相信这是最好的解决方法。这也是他们在 ng-options 指令的文档中所做的方式。

于 2013-08-06T12:14:02.330 回答
1

这是我一直在使用的代码中的一个示例。

HTML

<select ng-model="agent.id" ng-options="user.id as user.username for user in users"></select>

控制器

$scope.agent = {
    id: 2,
    address:4
};

它将下拉值设置为 2,使用代理 id 映射到每个下拉元素的 user.id。不知道这是否有帮助。

于 2013-08-06T16:55:18.620 回答
0
$scope.customer = {country: $scope.countries[0]};

或者

$scope.customer.country = $scope.countries[0];
于 2013-08-06T12:15:14.377 回答
0

我注意到,如果其中一个选项具有与模型等效的值,则角度将其分配为默认选定值。

这是一个示例咖啡脚本代码(注意currentPlant.status这里的值是'expired'):

控制器:

$scope.statusArr = [
  {value: 'active', display: 'Active'},
  {value: 'expired', display: 'Expired'}
]

$scope.currentPlant = CurrentPlants.get id : $routeParams.id

HTML:

<select class="form-control" ng-model="currentPlant.status" ng-options="status.value as status.display for status in statusArr">
        </select>

在此示例中,角度指定'expired'为默认选定选项。

于 2014-01-29T07:22:53.997 回答