gpt4 book ai didi

javascript - ngOptions 中的重复项

转载 作者:数据小太阳 更新时间:2023-10-29 03:55:36 27 4
gpt4 key购买 nike

我正在使用 AngularJS 版本 1.4.7 并且有一个包含对象数组的简单 AngularJS Controller 。我想通过 ngOptions 将这些对象显示为选项。

问题是每个对象都是重复的,我不知道为什么。此副本仅出现在选择中,源对象看起来不错。

angular
.module('demo', [])
.controller('DemoCtrl', DemoCtrl);

function DemoCtrl() {
var vm = this;

vm.demoOptions = [
{value: 1, label: 'Demo 1'},
{value: 2, label: 'Demo 2'},
{value: 3, label: 'Demo 3'}
];
vm.selected = null;;
}
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular.min.js"></script>

<div ng-app="demo" ng-controller="DemoCtrl as vm">
<select ng-options="item as item.label for item in vm.demoOptions track by item.value" ng-model="vm.selected">
<option value="" selected ng-if="vm.selected === null">-- select --</option>
</select>
<p ng-if="vm.selected !== null">Selected item: <code>{{vm.selected}}</code></p>
<p ng-if="vm.selected === null">No item is selected.</p>
<pre>vm.demoOptions == {{vm.demoOptions|json}}</pre>
</div>

这是一个错误吗?如何在不使用过滤器的情况下删除重复项?

注意:将 AngularJS 从版本 1.3.19 更新到 1.4.7 后会出现此问题。我阅读了更改日志,但它只说明了关于添加 track by - 我添加了它但没有效果。

最佳答案

这是 1.4.x 1.4.8 之前的一个已知错误,您可以查看 issue .

如果你必须使用 angularjs 1.4.7 版本那么你可以使用 ng-show 而不是 ng-if

您可以从 angularjs github 中找到更改日志和错误

关于javascript - ngOptions 中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34740680/

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