AngularJS:包含指令模板

AngularJS:包含指令模板,第1张

AngularJS:包含指令模板

您还需要在模板中输出族的名称:http :
//jsfiddle.net/roadprophet/DsvX6/

module.directive("tree", function($compile) {    return {        restrict: "E",        transclude: true,        scope: {family: '='},        template:        '<ul>' +      '<li ng-transclude></li>' +     '<li ng-repeat="child in family.children">' +         '<tree family="child">{{family.name}}</tree>' +     '</li>' + '</ul>',        compile: function(tElement, tAttr, transclude) { var contents = tElement.contents().remove(); var compiledContents; return function(scope, iElement, iAttr) {     if(!compiledContents) {         compiledContents = $compile(contents, transclude);     }     compiledContents(scope, function(clone, scope) {   iElement.append(clone);      }); };        }    };});

编辑

您也可以通过执行以下 *** 作来简化 *** 作:http :
//jsfiddle.net/roadprophet/DsvX6/2/

<div ng-app="myapp">    <div ng-controller="TreeCtrl">        <tree family="treeFamily">        </tree>    </div></div>module.directive("tree", function($compile) {    return {        restrict: "E",        transclude: true,        scope: {family: '='},        template:        '<ul>' +      '<li ng-transclude></li>' +     '<p>{{ family.name }}</p>' +      '<li ng-repeat="child in family.children">' +         '<tree family="child"></tree>' +     '</li>' + '</ul>',        compile: function(tElement, tAttr, transclude) { var contents = tElement.contents().remove(); var compiledContents; return function(scope, iElement, iAttr) {     if(!compiledContents) {         compiledContents = $compile(contents, transclude);     }     compiledContents(scope, function(clone, scope) {   iElement.append(clone);      }); };        }    };});

编辑 虽然问题的根源相同。没有模板传递给内部树指令。
http://jsfiddle.net/roadprophet/DsvX6/3/

<div ng-app="myapp">    <div ng-controller="TreeCtrl">        <tree family="treeFamily">     <p>{{ family.name }}</p>        </tree>    </div></div> template:        '<ul>' +      '<li ng-transclude></li>' +     '<li ng-repeat="child in family.children">' +         '<tree family="child"><div ng-transclude></div></tree>' +     '</li>' + '</ul>'


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5674030.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存