如何在ng-repeat中正确执行功能

弗朗切斯科·穆西(FrancescoMussi)

情况:

我在AngularJs中制作一个分配权限的应用程序。为了做到这一点,我有三个嵌套的ng-repeat。

第一循环:显示PERMISSION GROUP

第二个循环:对于每个权限组,显示“类别”。在此循环内执行一个函数,该函数将获取每个类别的所有子类别

第三循环:显示子类别

问题:

问题在于第二个循环内函数的执行。

尝试1-热量:

<div class="row" ng-repeat="permission_group in list_permission_groups">
  <div class="col-sm-3">
    <h3>
      {{permission_group.permission_group_name}} 
    </h3>
  </div>
  <div class="col-sm-9">
    <ul>
      <li ng-repeat="category in list_categories">
        <span>
          {{ category.name }} 
        </span>            
        <div class="checkbox">
          <label>                
            <div ng-init="temp_result = get_Sub_Categories(category.category_id)">                  
              <p ng-repeat="sub_category in temp_result">
                {{ sub_category.name }} 
              </p>                  
            </div>               
          </label>
        </div>           
      </li>
    </ul>
  </div>
</div>

在控制器中:

$scope.get_Sub_Categories = function(category_id) {
    $http({

        url: base_url + 'main/json_get_list_sub_categories',
        data: {
            category_id: category_id
        },
        method: "POST"

    }).success(function(data) {

        return data;

    });

}

行为很奇怪。可能是由于脏检查导致页面被加载682次。没有结果显示。

ATTEMPT 2-ng-click :(仅用于调试)

<div class="row" ng-repeat="permission_group in list_permission_groups">

  <div class="col-sm-3">

    <h3>
      {{permission_group.permission_group_name}} 
    </h3>

  </div>

  <div class="col-sm-9">
    <ul>
      <li ng-repeat="category in list_categories">
        <span>
          {{ category.name }} 
        </span>

        <div class="checkbox">
          <label>

            <button ng-click="get_Sub_Categories(category.category_id)">
              GET SUB-CATEGORIES
            </button>

            {{ list_sub_categories }} 

          </label>
        </div>

      </li>
    </ul>
  </div>
</div>

在控制器中:

$scope.get_Sub_Categories = function(category_id) {
    $http({

        url: base_url + 'main/json_get_list_sub_categories',
        data: {
            category_id: category_id
        },
        method: "POST"

    }).success(function(data) {

        $scope.list_sub_categories = data;

    });

}

这次页面仅加载一次。如果我按下按钮,则会显示适当的子类别,但不仅会显示相应类别,还会显示FOR ALL,因为我正在全局范围内修改var。

目的:

我想要获得的只是简单地显示每个类别的所有适当子类别。无需使用按钮,只需在页面加载后立即查看所有适当的内容即可。但是我不明白如何在AngularJs中正确地做到这一点。

问题:

如何在ng-repeat中正确执行一个函数,该函数为每个循环返回并显示不同的数据?

编辑-将一个类别的子类别的示例复制:

[{
    "sub_category_id": "1",
    "name": "SUB_CATEGORY_1",
    "category_id_parent": "1",
    "status": "VISIBLE"
}, {
    "sub_category_id": "2",
    "name": "SUB_CATEGORY_2",
    "category_id_parent": "1",
    "status": "VISIBLE"
}, {
    "sub_category_id": "3",
    "name": "SUB_CATEGORY_3",
    "category_id_parent": "1",
    "status": "VISIBLE"
}, {
    "sub_category_id": "4",
    "name": "SUB_CATEGORY_4",
    "category_id_parent": "1",
    "status": "VISIBLE"
}]
阿米特什

在ng-repeat中调用函数与普通函数相同。由于您需要在页面加载时显示子类别,因此最好事先获取这些数据。异步加载子类别将不适合这种情况。

这是实现此目的的简短代码段(JS Fiddle

<div ng-app="app" ng-controller="ctrl">
    <div ng-repeat="category in model.categories"> <span> Category: {{ category.name }} </span>

      <p ng-repeat="subCategory in getSubCategories(category.Id)">{{ subCategory.name }}</p>
   </div>
</div>

控制器

angular.module("app", [])
.controller('ctrl', ['$scope', function ($scope) {
$scope.model = {
    categories: [{
        "Id": 1,
        name: '1'
    }, {
        "Id": 2,
        name: '2'
    }],
    subCategories: [{
        "parentId": 1,
        name: 'a1'
    }, {
        "parentId": 1,
        name: 'a2'
    },
                   {
        "parentId": 2,
        name: 'a3'
    }]
}
$scope.getSubCategories = function(parentId){
    var result = [];
    for(var i = 0 ; i < $scope.model.subCategories.length ; i++){
        if(parentId === $scope.model.subCategories[i].parentId){
            result.push($scope.model.subCategories[i]);               
        }
    }
    console.log(parentId)
    return result;
}}])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 Django 中正确执行查询?

来自分类Dev

如何在 Python 中正确执行 eval?

来自分类Dev

如何在ng-repeat指令中正确使用ui-select

来自分类Dev

AngularJS - bootstrap popover,如何在 ng-repeat 中正确使用“popover-is-open”

来自分类Dev

问:如何在AngularJs中使用ng-repeat onClick执行带参数的功能?

来自分类Dev

如何在angularjs中正确使用ng-class?

来自分类Dev

如何在跨数月的功能分支中正确开发

来自分类Dev

如何在Haskell中正确实现助手功能

来自分类Dev

如何在模型中正确使用张量流功能

来自分类Dev

如何在跨数月的功能分支中正确开发

来自分类Dev

如何在Qt主线程中正确执行GUI操作?

来自分类Dev

如何在ListView中正确执行无限加载

来自分类Dev

如何在GKE中正确执行cron任务

来自分类Dev

如何在相关子查询中正确执行别名

来自分类Dev

如何在Cassandra中正确配置和执行BatchStatement?

来自分类Dev

如何在ListView中正确执行无限加载

来自分类Dev

如何在后台线程中正确执行SQL查询?

来自分类Dev

如何在ng-repeater运行时执行功能

来自分类Dev

如何在ng-repeat中进行ng-repeat?

来自分类Dev

如何在ng-repeat期间呈现{{}}?

来自分类Dev

如何在ng-repeat中使用ng-if?

来自分类Dev

如何在ng-if中传递ng-repeat变量?

来自分类Dev

Angular 1 如何在 ng-include 中正确包含外部组件?

来自分类Dev

如何在功能性API中正确使用Tensorflow插件的指标?

来自分类Dev

如何在Telethon中正确使用iter_download功能进行多连接下载

来自分类Dev

如何在React功能组件中正确使用键?这是我的喜欢按钮:

来自分类Dev

如何在React功能组件中正确设置setInterval计时器?

来自分类Dev

如何在VB代码中的DataTable上的Linq中正确执行“分组依据”?

来自分类Dev

如何在Node.js的每次循环执行中正确添加

Related 相关文章

  1. 1

    如何在 Django 中正确执行查询?

  2. 2

    如何在 Python 中正确执行 eval?

  3. 3

    如何在ng-repeat指令中正确使用ui-select

  4. 4

    AngularJS - bootstrap popover,如何在 ng-repeat 中正确使用“popover-is-open”

  5. 5

    问:如何在AngularJs中使用ng-repeat onClick执行带参数的功能?

  6. 6

    如何在angularjs中正确使用ng-class?

  7. 7

    如何在跨数月的功能分支中正确开发

  8. 8

    如何在Haskell中正确实现助手功能

  9. 9

    如何在模型中正确使用张量流功能

  10. 10

    如何在跨数月的功能分支中正确开发

  11. 11

    如何在Qt主线程中正确执行GUI操作?

  12. 12

    如何在ListView中正确执行无限加载

  13. 13

    如何在GKE中正确执行cron任务

  14. 14

    如何在相关子查询中正确执行别名

  15. 15

    如何在Cassandra中正确配置和执行BatchStatement?

  16. 16

    如何在ListView中正确执行无限加载

  17. 17

    如何在后台线程中正确执行SQL查询?

  18. 18

    如何在ng-repeater运行时执行功能

  19. 19

    如何在ng-repeat中进行ng-repeat?

  20. 20

    如何在ng-repeat期间呈现{{}}?

  21. 21

    如何在ng-repeat中使用ng-if?

  22. 22

    如何在ng-if中传递ng-repeat变量?

  23. 23

    Angular 1 如何在 ng-include 中正确包含外部组件?

  24. 24

    如何在功能性API中正确使用Tensorflow插件的指标?

  25. 25

    如何在Telethon中正确使用iter_download功能进行多连接下载

  26. 26

    如何在React功能组件中正确使用键?这是我的喜欢按钮:

  27. 27

    如何在React功能组件中正确设置setInterval计时器?

  28. 28

    如何在VB代码中的DataTable上的Linq中正确执行“分组依据”?

  29. 29

    如何在Node.js的每次循环执行中正确添加

热门标签

归档