Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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 角度指令在链接函数中手动编译+;嵌入_Angularjs_Angularjs Directive - Fatal编程技术网

Angularjs 角度指令在链接函数中手动编译+;嵌入

Angularjs 角度指令在链接函数中手动编译+;嵌入,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我需要在link函数中进行转换和手动编译,我想知道是否有比我在下面粘贴的“动态”更好的方法。它似乎在工作,但我不确定删除ng transclude属性的后果是什么,我正在删除它,因为错误:[ngTransclude:orphan]在模板中非法使用ngTransclude指令!未找到需要转换的父指令。元素: 底线是,我需要为该指令的不同实例提供不同的模板,并回退到通用模板 我不能使用编译部分。在这里我有一个简单的例子,但我也有其他情况下与大链接功能,我宁愿不想转换,因为这应该只是“黄金子弹”类型的

我需要在link函数中进行转换和手动编译,我想知道是否有比我在下面粘贴的“动态”更好的方法。它似乎在工作,但我不确定删除
ng transclude
属性的后果是什么,我正在删除它,因为
错误:[ngTransclude:orphan]在模板中非法使用ngTransclude指令!未找到需要转换的父指令。元素:

底线是,我需要为该指令的不同实例提供不同的模板,并回退到通用模板

我不能使用编译部分。在这里我有一个简单的例子,但我也有其他情况下与大链接功能,我宁愿不想转换,因为这应该只是“黄金子弹”类型的调整

这个小家伙可以在这里找到原形

起初的 动态 蒂亚

这可能会有帮助-
angular.module('ultimateDataTableServices')
  .directive('udtForm', function () {
    return {
      restrict: 'A',
      replace:true,
      transclude:true,
      templateUrl:'udt-form.html',
      link: function(scope, element, attr) {
      }
    };
  });
angular.module('ultimateDataTableServices')
  .directive('udtForm', ['$compile', '$templateCache', function ($compile, $templateCache) {
    return {
      restrict: 'A',
      transclude:true,
      link: function(scope, element, attr, ctrls, transclude) {
        var tplName = 'udt-form.html',
          tplPath = scope.udtTable.configMaster.templates[tplName] || scope.udtTable.configMaster.templatesMaster[tplName] || tplName,
          elem = angular.element($templateCache.get(tplPath));

        elem.find('[ng-transclude]').removeAttr('ng-transclude').append(transclude());

        element.replaceWith($compile($templateCache.get(tplPath))(scope));
      }
    };
  }]);