AngularJS - 如何获取两个索引

10 浏览
0 Comments

AngularJS - 如何获取两个索引

我有两个ng-repeat用于子div和父div,代码如下:\n

\n我想要获取子和父索引。我该如何获取?

0
0 Comments

AngularJS中如何获取两个索引?

在上面的代码中,我们可以看到有两个嵌套的ng-repeat循环。外层循环是遍历stages数组,内层循环是遍历每个stage对象中的steps数组。在内层循环中,我们想要获取两个索引:当前step的索引和其父元素stage的索引。

为了解决这个问题,我们可以使用$parent.$index来获取父元素的索引。在HTML代码中,我们可以看到在标签中使用了{{$index}}来获取当前step的索引,而使用了{{$parent.$index}}来获取父元素stage的索引。

以下是完整的HTML和JS代码:

HTML:

<div ng-app="app" ng-controller="ctrl">
  <div ng-repeat="stage in stages">
    <div ng-repeat="step in stage.steps">
      <span>Index: {{$index}}. ParentIndex:{{$parent.$index}}</span>
    </div>
  </div>
</div>

JS:

angular.module('app', []).
controller('ctrl', function($scope) {
  $scope.stages = [{
    steps: ['1', '2', '3']
  }, {
    steps: ['4', '5']
  },
  {steps:['6','7','8']}];
})

你可以在这里查看这个例子的JSFIDDLE。

通过使用{{$index}}{{$parent.$index}},我们可以轻松地获取到内层循环和外层循环的索引,从而满足我们的需求。

0
0 Comments

AngularJS中获取两个索引的问题是因为需要获取父级索引和子级索引,以便在点击按钮时进行相应的处理。解决方法是通过在ng-repeat指令中使用ng-init来定义一个变量,用于保存父级索引。然后在按钮的ng-click事件中调用一个函数,传递子级索引和父级索引作为参数。在函数中,可以使用$scope.clickedStageAndStep来获取这两个索引,并进行相应的操作。

具体代码如下:

$scope.clickedStageAndStep = function(stageIndex, stepIndex) { console.log("Step Index: " + stepIndex + " And StageIndex: " + stageIndex); };

以上代码中,首先通过ng-init指令将父级索引保存在stageNumber变量中。然后在ng-click事件中调用clickedStageAndStep函数,传递子级索引和父级索引作为参数。在函数中,使用console.log方法打印出这两个索引的值。

通过以上代码,就可以实现在点击按钮时获取父级索引和子级索引的功能。

0
0 Comments

AngularJS - 如何获取两个索引

在AngularJS中,每个ng-repeat都有自己的作用域,$index表示ng-repeat的最内层作用域。

问题的出现原因:

在给按钮绑定点击事件时,需要获取父级和子级的索引,即$parent.$index和$index。然而,由于ng-repeat有自己的作用域,直接使用$index会导致获取到的是内层ng-repeat的索引,而不是外层ng-repeat的索引。

解决方法:

使用$parent.$index来获取外层ng-repeat的索引,将其传递给clickedStageAndStep函数,同时使用$index来获取内层ng-repeat的索引,也传递给函数。这样就能正确地获取到两个索引值。

代码示例:

$scope.clickedStageAndStep = function(parent, child) {
  console.log("Step Index: " + child);
};

注意事项:

上述代码中

0