我有一个数组通话"菜单"
var Menu = [
"url" : "#",
"type" : "F",
"id" : "F00001",
"name" : "CUST",
"child" : [ {
"type" : "P",
"id" : "C00001",
"name" : "CUST INFO"
}, {
"type" : "P",
"id" : "C00002",
"name" : "CUST BACKGROUND"
} ]
当TopMenuBar点击" CUST"我希望select索引可以像下面的代码一样放入另一个ng-repeat
<div id"TopMenuBar">
<ul>
<li ng-repeat="row in Menu" >
<a ng-click="row.type == 'P' ? GeneratePage({'txnName':row.name,'txnId':row.id,'txnPath':[row.name],'txnURL':[row.url]}) : angular.noop >{{row.name}}</a></span>
</li>
</ul>
</div>
<div id="sideMenuContainer">
<ul>
<li ng-repeat="row2 in Menu[index].child" >
<a ng-click="row.type == 'P' ? GeneratePage({'txnName':row2.name,'txnId':row2.id,'txnPath':[row2.name],'txnURL':[row2.url]}) : angular.noop >{{row2.name}}</a></span>
</li>
</ul>
</div>
感谢答案
答案 0 :(得分:1)
您无法访问重复容器外的ng-repeat
索引。出于单击事件的目的,您只需传递对象并将重复对象设置为传递的对象,如下所示。
在ng-repeat
语句中添加click事件,并将该对象传递给方法。
<div id"TopMenuBar">
<ul>
<li ng-repeat="row in Menu" ng-click="selectMenu(row)">
<a ng-click="row.type == 'P' ? GeneratePage({'txnName':row.name,'txnId':row.id,'txnPath':[row.name],'txnURL':[row.url]}) : angular.noop >{{row.name}}</a></span>
</li>
</ul>
</div>
在控制器内部将事件定义为
$scope.selectMenu = function(menu) {
$scope.selectedMenu = munu;
}
对于第二个ng-repeat选项,将其定义为
<div id="sideMenuContainer">
<ul>
<li ng-repeat="row2 in selectedMenu.child" >
<a ng-click="row.type == 'P' ? GeneratePage({'txnName':row2.name,'txnId':row2.id,'txnPath':[row2.name],'txnURL':[row2.url]}) : angular.noop >{{row2.name}}</a></span>
</li>
</ul>
</div>
repeat语句中的selectedMenu
将是第一个重复语句中的选定菜单。希望这对你有用
答案 1 :(得分:0)
试试这样:
<div class="container1">
<ul>
<li ng-repeat="menu in menus track by $index">
<a ng-click="child($index)">{{menu.name}}</a>
</li>
</ul>
</div>
<div class="container1">
<ul>
<li ng-repeat="menu in menus2 track by $index">
<a>{{menu.name}}</a>
</li>
</ul>
</div>
$scope.child = function(index) {
$scope.menus2 = $scope.menus[index].child;
}