2017-04-10 31 views
0

我想通過不同格式的重複值,但不能匹配父和內部索引,因此我得到Error: [ngRepeat:dupes]。這麼說,我通過具有多個屬性的其中我有標籤對象...見下文在嵌套的ng重複內匹配父和內部索引,同時傳遞重複值

vm.hotels返回對象像下面

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

vm.hTags是,像每個對象相匹配的數組下面

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

我的控制器內我分裂標籤,然後推入到一個數組內循環,我傳遞到視圖。這工作,因爲它應該但我不能讓它在視圖內的索引。下面是嵌套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]但重複錯誤是由於索引拋出這是行不通的。也許我需要創建一些自定義的跟蹤屬性?

+0

顯示您的酒店對象。 –

+0

@HJz錯誤消失,但沒有輸出 – user1751287

+0

@ManikandanVelayutham我沒有顯示對象0:對象標記:「tag1 || tag2」,1:object標記:「tag1 || tag2」 – user1751287

回答

1

嵌套ng-repeat的問題是,是,如果你使用$index兩個孩子,父母,它可能會發生衝突。爲了避免它,我們可以通過提供名稱來使用它。像這樣

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

我不知道你是怎麼想渲染,但這裏有一個樣本例如:

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>

+0

我試過了,但仍然拋出重複的錯誤....錯誤:[ngRepeat:dupes] – user1751287

+0

我看你使用AngularJS v1.2.23,我的版本是最新的一個,AngularJS v1.6.3 ,,,它可以是由於該 – user1751287

+0

@ user1751287 [plunker](https://plnkr.co/edit/K3n7ZtLL8emDE9kVYAPZ?p=preview)使用'v1.6.3' ..仍然沒有日誌 – tanmay

0

請找到下面的代碼改變,

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

檢查,讓我做know.You一個語法錯誤

+0

對不起,我有我的代碼中的拼寫錯誤,只是編輯...不,它不工作 – user1751287

+0

你能分享你的json結構在這裏 – Srigar

+0

我添加了如何對象屬性如上面0:object tags:「tag1 || tag2 「,1:對象標籤:」tag1 || tag2「 – user1751287

1

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"]]; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.3/angular.min.js"></script> 
 

 
<body ng-app="myApp" ng-controller="MainCtrl as vm"> 
 
    <div ng-repeat="key in vm.hotels"> 
 
    <div ng-repeat="tag in vm.hTags[$index]"> 
 
     {{tag}} 
 
    </div> 
 
    </div> 
 
    <br> 
 
    <div ng-repeat="(key, value) in vm.hotels"> 
 
    <div ng-repeat="tag in vm.hTags[key]"> 
 
     {{tag}} 
 
    </div> 
 
    </div> 
 
</body>

+0

我試過了,但它仍然拋出重複的錯誤....錯誤:[ngRepeat:dupes] ..我使用最新版本的角1.6.3,我看到你使用較早的一個。可能是這個問題 – user1751287

+0

現在,我正在更新版本 –

+0

顯示完整的代碼.. –