AngularJS通过自定义过滤器函数$ rootScope:infdig将范围传递给指令

嘉泰

我已经在angularJs中创建了简单的自定义指令。在该指令中,我将对象数组作为tableLayout传递。请参阅我的工作jsfiddle,没有错误。

JS小提琴工作

但是我需要传递一个经过过滤的tableLayout。我已经在范围内创建了一个名为filterFilterFn的函数来过滤值,然后将其传递给指令的范围。当我这样做时,我收到$ rootScope:infdig错误。

带过滤器功能的Js Fiddle不起作用

读取另一个类似的问题是与在angularJs中使用默认过滤器有关。因此,为什么要在示波器中完成自定义过滤器功能。但是我仍然遇到同样的错误。关于我做错了什么的建议将不胜感激。

下面的无效代码:

<div ng-app="myApp" ng-controller="mainCtrl">
    <script type="text/ng-template" id="/template">
        <button ng-click="testFn()">Test</button>
        <div layout="row">
            <div flex ng-repeat="col in [1,2,3]"><span>HEADER{{$index}}</span>
                <div layout="column">
                    <div flex style="border: 1px solid black;" ng-repeat="row in [1,2,3]">{{$index}}</div>
                </div>
            </div>
        </div>
    </script> 
    <button ng-click="testFn()">Test 2</button>
    <form-table table-layout=formFilterFn('table_id',1)></form-table>
</div>

var app = angular.module('myApp', ['ngMaterial']);
app.controller('mainCtrl', function($scope) {
    $scope.tableLayout =[{"head_id":"GAP Assessment","table_id":"1","table_name":"GAP Table","element_id":"0","element_name":"Action Reference","sort_order":"0","is_multirow":"1","flex":"30","element_sort_order":"4","is_show":"0"},{"head_id":"GAP Assessment","table_id":"1","table_name":"GAP Table","element_id":"1","element_name":"Audit Criteria","sort_order":"0","is_multirow":"1","flex":"30","element_sort_order":"0","is_show":"1"},{"head_id":"GAP Assessment","table_id":"1","table_name":"GAP Table","element_id":"3","element_name":"Document Reference","sort_order":"0","is_multirow":"1","flex":"10","element_sort_order":"3","is_show":"1"},{"head_id":"GAP Assessment","table_id":"1","table_name":"GAP Table","element_id":"4","element_name":"Findings - General","sort_order":"0","is_multirow":"1","flex":"20","element_sort_order":"1","is_show":"1"},{"head_id":"GAP Assessment","table_id":"1","table_name":"GAP Table","element_id":"5","element_name":"Findings Details","sort_order":"0","is_multirow":"1","flex":"40","element_sort_order":"2","is_show":"1"}]
    $scope.testFn=function(){
       console.log("Test");
   }
   $scope.formFilterFn = function(key,value){
       var output = [];
       var input = $scope.tableLayout;
       for (var x =0; x < Object.keys(input).length; x++){                                  
           if (input[x][key]==value){                                       
               output.push(input[x]);                                   
           }                                        
       }    
       return output;
   }

});
app.directive('formTable', function() {
    return {
        scope:{tableLayout:'='},
        link: function(scope,element,attrs){ // normal variables rather than actual $scope, that is the scope data is passed into scope

                    scope.column=[1,2,3];
                    scope.testFn=function(){
                        console.log(scope.tableLayout);
                    }



                    //function and scopes go here
                },//return
        transclude:true,
        templateUrl: '/template',
        restrict: 'E'        
    }
})
让·F。

2种方式的绑定在这里引起循环,您可以使用'&'来绑定范围。

请检查:http : //jsfiddle.net/pa13f6gb/1/

scope:{ tableLayout:'&' },

来自https://docs.angularjs.org/guide/directive:“因此,'&'绑定是将回调函数绑定到指令行为的理想选择。”

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AngularJS将数组传递给自定义过滤器作为参数

来自分类Dev

是否可以将HTML输入字段变量传递给自定义Angularjs过滤器?

来自分类Dev

AngularJS将数组传递给自定义过滤器作为参数

来自分类Dev

如何将 $scope 值传递给 AngularJs 中的自定义过滤器?

来自分类Dev

如何将值从自定义指令传递到自定义过滤器?

来自分类Dev

AngularJS:将货币过滤器应用于自定义过滤器的返回值

来自分类Dev

将部分网址传递到AngularJS中的自定义过滤器

来自分类Dev

通过控制器的HTTPGET方法将动态变量传递给自定义操作过滤器

来自分类Dev

AngularJs-在指令控制器内使用自定义过滤器

来自分类Dev

在 AngularJS 中的 ng-repeat 指令中使用自定义过滤器订购数据

来自分类Dev

将现有过滤器链接到自定义过滤器中?

来自分类Dev

angularjs:将值传递到自定义过滤器以在下拉单击时启用它

来自分类Dev

传递给自定义过滤器的数据未定义

来自分类Dev

传递给自定义过滤器的数据未定义

来自分类Dev

angularjs指令:$ rootScope:infdig错误

来自分类Dev

AngularJS:我可以使用什么过滤器类型来创建自定义货币指令?

来自分类Dev

AngularJS指令将参数传递给隔离的范围函数

来自分类Dev

AngularJS指令将参数传递给隔离的范围函数

来自分类Dev

从具有隔离范围的Angular指令访问自定义过滤器

来自分类Dev

Angular 自定义指令在过滤器中使用范围变量

来自分类Dev

想要将ng-repeat对象传递给自定义过滤器功能

来自分类Dev

在角度过滤器中使用自定义过滤器,指令和http GET请求?

来自分类Dev

如何通过范围将变量传递给指令

来自分类Dev

将变量传递给AngularJS指令而没有孤立的范围

来自分类Dev

将范围函数传递给克隆的(和编译的)角度指令

来自分类Dev

将重复的项目传递到自定义过滤器

来自分类Dev

将当前元素传递到ng-repeat中的自定义过滤器

来自分类Dev

MVC-将自定义参数传递到自定义操作过滤器

来自分类Dev

MVC-将自定义参数传递到自定义操作过滤器

Related 相关文章

  1. 1

    AngularJS将数组传递给自定义过滤器作为参数

  2. 2

    是否可以将HTML输入字段变量传递给自定义Angularjs过滤器?

  3. 3

    AngularJS将数组传递给自定义过滤器作为参数

  4. 4

    如何将 $scope 值传递给 AngularJs 中的自定义过滤器?

  5. 5

    如何将值从自定义指令传递到自定义过滤器?

  6. 6

    AngularJS:将货币过滤器应用于自定义过滤器的返回值

  7. 7

    将部分网址传递到AngularJS中的自定义过滤器

  8. 8

    通过控制器的HTTPGET方法将动态变量传递给自定义操作过滤器

  9. 9

    AngularJs-在指令控制器内使用自定义过滤器

  10. 10

    在 AngularJS 中的 ng-repeat 指令中使用自定义过滤器订购数据

  11. 11

    将现有过滤器链接到自定义过滤器中?

  12. 12

    angularjs:将值传递到自定义过滤器以在下拉单击时启用它

  13. 13

    传递给自定义过滤器的数据未定义

  14. 14

    传递给自定义过滤器的数据未定义

  15. 15

    angularjs指令:$ rootScope:infdig错误

  16. 16

    AngularJS:我可以使用什么过滤器类型来创建自定义货币指令?

  17. 17

    AngularJS指令将参数传递给隔离的范围函数

  18. 18

    AngularJS指令将参数传递给隔离的范围函数

  19. 19

    从具有隔离范围的Angular指令访问自定义过滤器

  20. 20

    Angular 自定义指令在过滤器中使用范围变量

  21. 21

    想要将ng-repeat对象传递给自定义过滤器功能

  22. 22

    在角度过滤器中使用自定义过滤器,指令和http GET请求?

  23. 23

    如何通过范围将变量传递给指令

  24. 24

    将变量传递给AngularJS指令而没有孤立的范围

  25. 25

    将范围函数传递给克隆的(和编译的)角度指令

  26. 26

    将重复的项目传递到自定义过滤器

  27. 27

    将当前元素传递到ng-repeat中的自定义过滤器

  28. 28

    MVC-将自定义参数传递到自定义操作过滤器

  29. 29

    MVC-将自定义参数传递到自定义操作过滤器

热门标签

归档