【问题标题】:save $index in ng repeat angularjs在 ng 中保存 $index 重复 angularjs
【发布时间】:2017-06-27 19:27:50
【问题描述】:

我有一个小问题,我会保存 $ index 以便在下一次重复中重复使用它,

我解释一下,我创建了一个与我的 json 数组大小相同的对象数组

这是我的对象数组

 $scope.valeur[index] = {
                    'BODY':"",
                    'TYPE':"",
                    'PARAMETRE': ""
                };

这是我的 json 的图片

所以我的 $ 索引运行 2 次,然后运行 ​​5 次,我希望从第一轮开始它保存变量并开始下一个 ng 重复具有以前的值(此处为 1)

这是我的 ng-repeat

<div ng-repeat="(key, item) in dataApi track by $index" >
    <div u ng-repeat="(key, itemHead) in item track by $index" ng-init="firstIndex == undefined ? firstIndex = $index : firstIndex = $index+firstIndex" >
        {{firstIndex }}
    </div>
</div>

我使用 ng-init 进行了测试,但没有任何具体内容

有人可以帮助我

提前感谢

编辑

这是我想要的,所以我想保存第二级的 ng-repeat 值,

第一轮 ng-repeat 级别 2 索引从 0 开始 并在 1 完成

第二轮 ng-repeat 级别 2 索引从 2 开始(前一个 $index+1 的值) 并在 6 点结束

这是一张图片

因为我需要与我的对象数组保持一致

示例 第一轮 索引 = 0 $ scope.value [索引] 索引 = 1 $ scope.value [索引] 第二轮 索引 = 0 $ scope.value [索引]

所以问题,因为我的索引是 0 而不是 2

否则我只需要一个变量来计算我切换到 ng repeat lvl2 的次数

【问题讨论】:

    标签: angularjs json


    【解决方案1】:

    尝试使用$parent.$index,您不必暂时保存它。

    【讨论】:

    • 我的 div 父级只有 2 条信息 c 方法不对,我想保存第 2 级索引
    • 问题是为什么需要保存?即使您必须保存它,您也可能将 ng-init 放在错误的位置,此时它已进入新的子范围,因此请在外部 div 或任何中间 dom 中使用 ng-init(如果有) .
    • 好吧,为什么要添加最后一个索引呢?假设您位于第 10 个索引并且该子数组只有 3 个项目,那么,您会从第 9 个索引开始吗?你为什么不简单地迭代所有嵌套数组作为一个新的迭代?你到底想要什么?
    【解决方案2】:

    这是一个工作示例,如果您不想使用ng-init,那么$parent.$index 是一个不错的选择:

    <html lang="en" data-ng-app="test">
    <head>
        <meta charset="utf-8">
        <title>Test</title>
        <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js"></script>
        <script type="text/javascript">
    
            angular.module('test',[])
                    .controller('Main',function($scope)
                    {
                        $scope.options = [
                        [{opt:'1'},{opt:'2'},{opt:'3'}],
                        [{opt:'1'},{opt:'2'},{opt:'3'}]
                        ];
                    });
        </script>
    </head>
    <body ng-controller="Main">
    {{'ng-repeat'}}
    <div ng-repeat="data in options" ng-init="first = $index"><div ng-repeat="d in data">first:{{first}}.data:{{d.opt}}current:{{$index}}</div></div>
    {{data}}
    </body>
    </html>

    【讨论】:

    • @Gazano 你想从第一个 $index 初始化下一个第二个 ng-repeat?对吗?
    猜你喜欢
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多