【问题标题】:Binds same data to all children li items on ng-click在 ng-click 上将相同的数据绑定到所有子 li 项
【发布时间】:2016-02-24 19:47:01
【问题描述】:

我尝试了什么:-

  <ul id="leftMenu">
            <li ng-repeat="(networkKey, networkValue) in menuValue track by $index">
               <a href="#" ng-click="divVerticalMenuClickEventHandler($event, networkValue, 'NetworkLevel', '')">
                    Network {{$index+1}}<span> </span></a>
                <ul>
                    <li ng-repeat="(deviceAccessPointKey, deviceAccessPointValue) in deviceAccessPointItems track by $index">
                      <a href="#" ng-click="divVerticalMenuClickEventHandler($event, networkValue +'/' +deviceAccessPointValue.name , 'DeviceLevel', deviceAccessPointValue.ref)">{{capitalizeFirstLetter(deviceAccessPointValue.name)}}<span> </span></a>
                         <div ng-repeat="(objectkey, objectValue) in objectListItems">
                            <ul class="" style="">
                             <li ng-repeat="(objectListKey, objectListValue) in objectValue track by $index | orderBy:sortMenu">
                               <a href="#"  ng-click="divVerticalMenuClickEventHandler($event, objectListValue, 'ObjectListLevel', '')">{{GetUpdatedObjectname(objectListValue)}}<span> </span>            
                               </a>
                            </li>
                          </ul>
                        </div>
                    </li>
                </ul>
            </li>
        </ul>

控制器动态绑定这个菜单。

 $scope.menuItems = payload.data;

在点击 li 项时,我调用 REST API 并绑定该 li 项的子项。但它将相同的 li 项目绑定到所有父 li 项目。 有什么问题:- 菜单示例:-

这里的问题是,如果我点击“Network1”,那么它会将 Network1 和 Network2 的孩子的数据绑定到相同的数据,设备也会发生同样的情况。如果我点击 Devices,那么它会绑定 Devices 对象以及 Devices2 对象。

请告诉我解决方案.. 提前致谢

【问题讨论】:

  • 试试 ng-click="yourfunc();$event.stopPropagation()"。据我所知,这是一个事件冒泡问题
  • 我试过了,但它不起作用。如果我们查看 HTML 代码,您可以看到“deviceAccessPointItems” JSON 对象,并且该对象分配给 Network 级别下的所有 li 项。因此,如果我单击 Network1,那么 Network1 子节点和 Network2 子节点将使用相同的“deviceAccessPointItems”。因此它为两者创建子项。

标签: angularjs multidimensional-array angularjs-directive angularjs-scope angularjs-ng-repeat


【解决方案1】:

我为整个菜单创建了一个 JSON 对象,并在单击菜单和子菜单时更新该对象。我将为所有 REST 调用更新此菜单 JSON 对象,并仅使用此对象。

【讨论】:

    猜你喜欢
    • 2014-08-08
    • 1970-01-01
    • 2016-04-01
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    相关资源
    最近更新 更多