Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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指令编译函数接收未解析标记语言的DOM_Angularjs_Angularjs Directive - Fatal编程技术网

AngularJS指令编译函数接收未解析标记语言的DOM

AngularJS指令编译函数接收未解析标记语言的DOM,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我想创建一个指令,根据id禁用一些UI元素。我正在ng repeat元素中动态创建id 为此,我使用了一个指令。我的问题是当调用编译函数时,DOM仍然有标记,并且我的id属性看起来像{{iteration_object.id}},而不是“myObjectId” 这里有一个例子 `http://jsfiddle.net/psLkyofu/ 我试着用link函数代替compile,但我遇到了同样的问题 欢迎任何帮助 在为指令分配作用域之前,指令的编译函数只被调用一次。 执行的函数顺序如下 编撰 控

我想创建一个指令,根据id禁用一些UI元素。我正在ng repeat元素中动态创建id

为此,我使用了一个指令。我的问题是当调用编译函数时,DOM仍然有标记,并且我的id属性看起来像{{iteration_object.id}},而不是“myObjectId” 这里有一个例子

`http://jsfiddle.net/psLkyofu/
我试着用link函数代替compile,但我遇到了同样的问题


欢迎任何帮助

在为指令分配作用域之前,指令的编译函数只被调用一次。 执行的函数顺序如下

  • 编撰
  • 控制器(范围用控制器实例化)
  • 预链接函数(作用域可用,但子指令(如果嵌套)尚未编译)
  • 子指令的预链接
  • child指令的post链接
  • post link函数(作用域可用,并且也附加了子指令。使用子指令操作指令元素被认为是安全的。因为在执行这些子指令的链接函数时,不必担心angular会覆盖子指令中所做的更改。)
  • Link函数是合适的,因为它是以作用域作为参数调用的

    我使用了链接功能,它工作了 请查收

    var myApp = angular.module('myApp',[]);
    
    myApp.directive('disableBasedOnCondition', function() {
    return {
    restrict : 'A',
    link : function(scope,element, attr){
            var aElements = $(element).find('input');
        aElements.each(function(index, aElem) {
        console.log(aElem);
                var disabled = $(aElem).attr('id') === 'id2';
        if (disabled) {
            console.log('disabling element' + $(aElem).attr('id'))
            $(aElem).attr('ng-disabled', 'true');
        }
      })
    }
    
    
      };
    
    });
    
    function MyCtrl($scope) {
    $scope.name = 'Superhero';
    
      $scope.testValues = [
    { linkValue: 'test1', id: 'id1', label: "this is link 1"},
    { linkValue: 'test2', id: 'id2', label: "this is link 2"},
    { linkValue: 'test3', id: 'id3', label: "this is link 3"},
      ];
    
    }