gpt4 book ai didi

javascript - 在传递重复值时匹配嵌套 ng-repeats 中的父索引和内部索引

转载 作者:行者123 更新时间:2023-12-01 03:49:55 24 4
gpt4 key购买 nike

我试图以不同格式传递重复值,但无法匹配父索引和内部索引,因此我得到 Error: [ngRepeat:dupes] 。也就是说,我传递具有多个属性的对象,其中我有标签......见下文

vm.hotels返回如下所示的对象

0:object
tags:"tag1|tag2|tag3"
1:object
tags:"tag1|tag2|tag3"

vm.hTags是一个与每个对象匹配的数组,如下所示

["tag1", "tag2", "tag3"]

在我的 Controller 中,我拆分标签,然后将其插入循环内的数组中,并将其传递给 View 。这可以正常工作,但我无法使其与 View 中的索引一起使用。下面是嵌套的ng-repeat

<li ng-repeat="item in vm.hotels track by $index">
<ul>
<li ng-repeat="tag in vm.hTags[$index]">
{{tag}}
</li>
</ul>
<li>

我尝试使用vm.hTags[$parent.$index]但它不起作用,因为由于索引而引发重复错误。也许我需要创建一些自定义跟踪属性?

最佳答案

嵌套ng-repeat的问题是,如果您对子级和父级都使用$index,则可能会发生冲突。为了避免这种情况,我们可以通过命名来使用它。像这样

ng-repeat="vm.hotels 中的(hotelIndex, item) ..."

我不知道你想如何渲染它,但这里有一个示例:

var app = angular.module('myApp', []);

app.controller('MainCtrl', function($scope) {
var vm = this;
vm.hotels = [{
tags: "tag1|tag2|tag3"
}, {
tags: "tag4|tag5|tag6"
}]
vm.hTags = [["tag1", "tag2", "tag3"], ["tag4", "tag5", "tag6"]]
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-app="myApp" ng-controller="MainCtrl as vm">
<div ng-repeat="(hotelIndex, item) in vm.hotels track by hotelIndex">
<div ng-repeat="tag in vm.hTags[hotelIndex]">
{{tag}}
</div>
<br>
</div>
</body>

关于javascript - 在传递重复值时匹配嵌套 ng-repeats 中的父索引和内部索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43320401/

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