Angularjs 在自定义指令上调用$compile
我编写了自定义指令Angularjs 在自定义指令上调用$compile,angularjs,angular-directive,Angularjs,Angular Directive,我编写了自定义指令。它具有以下模板: <div class="container"><div class="info"></div></div> 我以为它会返回已编译的html(),但它会返回。这是预期的行为吗?我可以得到指令的呈现html吗? “订单”指令代码: directives.directive("order",function(){ return{ restrict: "A/E", replace:
。它具有以下模板:
<div class="container"><div class="info"></div></div>
我以为它会返回已编译的html(
),但它会返回
。这是预期的行为吗?我可以得到指令的呈现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");
}
}
});
是的,模板插入到“指令元素”(在本例中为
)中。所以您可以使用jqLite(或者jQuery,如果您包括它的话),如下所示
var directiveTemplate=compiledOrder.children()
是的,模板插入到“directive元素”中(在本例中为
)。所以您可以使用jqLite(或者jQuery,如果您包括它的话),如下所示
var directiveTemplate=compiledOrder.children()
因此,一段时间后,我决定尝试使用template:
,而不是templateUrl:
,并发现使用这种方法可以像我预期的那样工作-$compile()(scope)
从“order”指令模板返回html。因此,一段时间后,我决定尝试使用template:
,而不是templateUrl:
,并发现使用这种方法可以像我所期望的那样工作-$compile()(scope)
从“order”指令模板返回html。你说得对,但我提出的要求有点不同。编译后,我是否可以不获取
,而获取“order”html模板?如果在指令配置中使用replace:true
,则可以(至少我认为是这样)。但是文档中说这将在将来被弃用。啊…伙计,这都是因为加载指令模板…如果我使用template:
compile立即返回此模板。你是对的,但我会问一些不同的问题。编译后,我是否可以不获取
,而获取“order”html模板?如果在指令配置中使用replace:true
,则可以(至少我认为是这样)。但是它在文档中说这将在将来被弃用。啊…伙计,这都是因为加载了指令模板…如果我使用模板:
compile立即返回此模板。它返回
,因为订单的模板尚未从URL中检索。如果您内联指定模板,那么它将同步存在。但是您应该问一个更广泛的问题,因为您可能不需要先执行$compile(“”
),它会返回
,因为订单的模板尚未从URL中检索到。如果您内联指定模板,那么它将同步存在。但是您应该问一个更广泛的问题,因为您可能不需要首先执行$compile(“”
)
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");
}
}
});