Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS:函数在动态创建的ng repeat中不执行_Angularjs_Angularjs Directive_Angularjs Ng Repeat - Fatal编程技术网

AngularJS:函数在动态创建的ng repeat中不执行

AngularJS:函数在动态创建的ng repeat中不执行,angularjs,angularjs-directive,angularjs-ng-repeat,Angularjs,Angularjs Directive,Angularjs Ng Repeat,这个问题越来越离题了。基本上,我有一个指令,它创建一个ng repeat,在动态变化的集合上进行迭代。我所说的动态更改是指JSON数据经常使用新集合进行更新 这些ng重复中的函数没有被调用,也就是说,我在控制台上看不到它们。ng重复的项目将显示在视图中。但是,当我使用常规ng重复并迭代特定集合时,操作可以正常工作。我猜处理ng repeat的指令dyn ng repeat有一些问题,但我无法理解 下面是一个JSON示例。model1和model2是不同的集合,稍后将使用类似的结构创建更多集合,如

这个问题越来越离题了。基本上,我有一个指令,它创建一个ng repeat,在动态变化的集合上进行迭代。我所说的动态更改是指JSON数据经常使用新集合进行更新

这些ng重复中的函数没有被调用,也就是说,我在控制台上看不到它们。ng重复的项目将显示在视图中。但是,当我使用常规ng重复并迭代特定集合时,操作可以正常工作。我猜处理ng repeat的指令dyn ng repeat有一些问题,但我无法理解

下面是一个JSON示例。model1和model2是不同的集合,稍后将使用类似的结构创建更多集合,如model3和model4。在视图中,我只想显示一个模型,而不是所有模型

{
    {
        "model": "model1",
        "children": [
         {
            "action": "removeChild",
            "model": "item",
            "text" : "remove this child"
         }
        ]
     },
     {
        "model": "model2",
        "children": [
         {
            "action": "removeChild",
            "model": "item",
            "text" : "remove this child"
         }
        ]
     }
 }
以下是HTML:

<div ng-repeat="field in fields">    
 <div dyn-ng-repeat="item in {{field.model}}">
  <div ng-repeat="field in field.children">
   <div dyn-click click-action="{{field.action}}" click-model=" {{field.model}}">{{field.text}}</div>
  </div>
 </div>
</div>
以下是dyn click指令的代码:

'use strict';

exports = module.exports = function (ngModule) {
    ngModule.directive('dynNgRepeat', function($compile){
        return{
         scope:true,
         link:function(scope,element,attr){
            element[0].removeAttribute('dyn-ng-repeat');
            element[0].setAttribute('ng-repeat', attr.dynNgRepeat + ' track by $index');
            $compile(element[0])(scope);
        }
    };
 });
};
'use strict';

exports = module.exports = function (ngModule) {
  ngModule.directive("dynClick",function($compile) {
    return {
      restrict: 'A',
      scope:true,
      link: function(scope,element,attrs) {
         $(element).click(function(e, rowid){
               scope.$eval(attrs["clickAction"]) (scope.$parent.$eval(attrs["clickModel"]), scope.$index);
            });
        }
    };
  });
};
函数removeChild从父控制器执行,用于删除该子控制器:

exports = module.exports = function (ngModule) {
  ngModule.controller('HomeCtrl', function ($scope, $timeout, $http, $state,      $stateParams, limitToFilter, Restangular, $rootScope, $translate) {

  $scope.removeChild = function(model, index){
      $rootScope.field.model.splice(index, 1);
      $scope.$digest();
  };

};
关于removeChild函数为什么不使用dyn ng repeat指令执行,有什么想法吗

我还为此问题创建了一个Plunker:。但是,在Plunker中,函数正在被调用,但存在问题。我真的不知道为什么在Plunker中调用这个函数,但在我的应用程序中却没有。我已经在这几天了,在这一点上,一个新的视角可能会有所帮助


提前感谢您的帮助。

您的plunker在控制台中有很多错误-首先修复它们这些指令与普通指令做相同的事情的目的是什么?这个“dynNgRepeat”做了完全相同的事情,摆脱那个笨蛋,和dynClick一样。只需点击。由于问题只存在于这些指令中,因此可能与它们创建的作用域有关。摆脱这些。你的代码太大,可能包含多个概念/编码错误。尝试将plunkr减少到再现错误的最小代码量。也许你在做这件事的时候会明白的。新的Dev&floribon-我会努力的。只是让您知道这可能需要几个小时。ribsies-正在动态生成每个ng重复和单击操作的模型,我需要一个自定义指令将该数据更改为ng重复和单击操作可以理解的模型。