这是使用角度1.4.8。
我需要使用其属性将包含角度表达式的HTML字符串传递给指令。表达式被解析,我只得到结果字符串:
<dynamic-template tpl = "selected: {{selection}}"/>
见下面的&#34;断点&#34;评论。到达那里,我需要有角度表达式(包含{{}})而不是结果字符串。
angular.module("sandbox").directive('dynamic-template', [function() {
return {
'replace' : true,
'transclude' : true,
'bindToController' : true,
'compile': function (tElement, tAttrs) {
return {
pre: function preLink(scope, element, attrs, controller){
controller.tpl = attrs.tpl; // breakpoint here
},
post: function (scope, element, attrs, controller){
controller.element = element;
}
}
}
}
}
]);
这可以根据自定义表达式动态插值显示值。 怎么能实现呢?我希望在预编译中检查属性值会有所帮助。它仍然提供插值。
答案 0 :(得分:1)
在compileFunction中完成你的工作,没有内插,你得到选中的:{{selection}}字符串:
angular.module("sandbox").directive('dynamic-template', [function() {
return {
'replace' : true,
'transclude' : true,
'bindToController' : true,
'compile': CompileFunction
};
function CompileFunction(element, attrs) {
// attrs.tpl
return PostLinkFunction;
}
function PostLinkFunction(scope, element, attrs) {
}
}
]);