在custom指令上调用$ compile

时间:2015-09-06 12:00:44

标签: angularjs angular-directive

我写了自定义指令<order></order>。它有以下模板:

<div class="container"><div class="info"></div></div>

我有父自定义指令<container></container>,它呈现简单 <div></div>。在其链接功能中,我尝试按以下方式添加一个order

var compiledOrder = $compile("<order></order>")(scope);

我认为它返回已编译的html(<div></div>),但它返回<order></order>。这是预期的行为吗?我可以获得指令的HTML吗? “订单”指令代码:

directives.directive("order",function(){
    return{
       restrict: "A/E",
       replace: true,
       scope: {
           order: "=data"
       },
       templateUrl: "http://127.0.0.1:37328/ItemTemplates/order.html",
       link: function(scope, element,attrs){
           console.log("link phase");
       }
    }
});

2 个答案:

答案 0 :(得分:0)

是的,模板插入了&#39;指令元素&#39; (在这种情况下<order />)。所以你可以使用jqLit​​e(或jQuery,如果你包括它),就像这样

var directiveTemplate = compiledOrder.children()

答案 1 :(得分:0)

所以,过了一段时间后,我决定尝试使用template:而不是templateUrl:,并发现使用此方法可以按预期工作 - $compile(<order></order>)(scope)从'order返回html '指令模板。