gpt4 book ai didi

javascript - AngularJS 用对象填充 ng-options

转载 作者:行者123 更新时间:2023-11-30 21:14:59 25 4
gpt4 key购买 nike

如果我使用 ng-options,我将如何填充选择?

所以我有类似的东西,

<select ng-model="option.model"
ng-options="option as (option.firstVal + ' ' + option.secondVal)
for option in options>
<option value="">default</option>

每个选项中的值都是一个完整的对象,而 ng-option 会遍历一组对象。

我需要值是整个对象才能成为值,所以我不能使用 ng-repeat。当我尝试将模型分配给对象本身时,

$scope.option.model = option; //option is made elsewhere

这是行不通的。它将使用默认选项填充该字段。

[编辑1]在此示例中,下拉列表应选择 John Rambo,但它会转到默认值

jsfiddle.net/brzxn8yt/1

最佳答案

你只需要使用 ng-options 的 track by 属性。在下面的示例中,我通过 ID 属性跟踪对象。

注意:请在对象中使用唯一属性(例如:id 是完美的,因为没有重复项,但 actor 属性有重复项,将抛出错误)。

var myapp = angular.module('myapp', []);
myapp.controller('FirstCtrl', function ($scope) {
$scope.people = [
{ id: 1, first: 'John', last: 'Rambo', actor: 'Silvester' },
{ id: 2, first: 'Rocky', last: 'Balboa', actor: 'Silvester' },
{ id: 3, first: 'John', last: 'Kimble', actor: 'Arnold' },
{ id: 4, first: 'Ben', last: 'Richards', actor: 'Arnold' }
];

$scope.selectedPerson = { id: 1, first: 'John', last: 'Rambo', actor: 'Silvester' }; // a person object

});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myapp">
<fieldset ng-controller="FirstCtrl">
<select
ng-options="item as item.first + ' ' + item.last for item in people track by item.id"
ng-model="selectedPerson">
<option value="">Default</option>
</select>
{{ selectedPerson }}
</fieldset>
</div>

引用:

ng-options

关于javascript - AngularJS 用对象填充 ng-options,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45775776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com