如何在Angularjs中获取父母的父母的父母的身份

时间:2015-03-19 19:17:30

标签: javascript angularjs parent-node

我有问题。我需要知道如何在AngularJS中获取祖父母的ID。 我需要“{{parent}}”成为“祖父母”。 (它应该是<div id="me-and-my-grand-parent">

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {

    var pid = document.getElementsByClassName("i-am-a-child");

    var pid = this.parentNode.id;

if (this.parentNode&&this.parentNode.id)
var pid=this.parentNode.id;

$scope.parent = var pid;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp" ng-controller="myCtrl">
    <div id="grand-parent{{$index}}" ng-repeat="item in items">
        <div>
          <div>
            <div id="me-and-my-{{parent}}" class="i-am-a-child">
            </div>          
          </div>
        </div>
      </div>
</div>

我的实际代码

<li ng-repeat="project in projects" ng-class="{active: project.childToggle, '': !project.childToggle,hasChild: project.children.length > 0 }" ng-dblclick="childToggleCt(project)" id="project-{{$index}}">
  <div class="project-overview">
    <header class="clearfix flip-area">
      <span ng-if="!project.inCart" class="status dropdown-button warning pull-left" id="id-{{ParentIdShow}}" data-intro="Status bar" data-position="right">Pending</span>

现在JS就像是:

$scope.ParentIdShow = function(obj) { alert(obj.target.parentNode.parentNode.parentNode.id); }

1 个答案:

答案 0 :(得分:0)

这些类型的“我的父母的父母我的......”的答案是使用controller as语法。阅读更多相关信息here。简而言之,它可以让你做像

这样的事情
<div ng-controller="ctrl1 as first">
  <div ng-controller="ctrl2 as second">
    ...
        <div ng-controller="ctrlN as Nth">
          <div ng-repeat="i in arr">
              {{first.property}}
              {{second.otherProperty}}
              {{Nth.nProperty}}

请注意您不需要任何parent来电。