问题
通过自定义指令动态添加ng-bind属性,以便能够在自定义指令中使用ng-bind、ng-bind-html或ng-bind-html-unsafe ,而无需在任何地方手动添加到模板定义中。
例子
http://jsfiddle.net/nstuart/hUxp7/2/
指令失效
angular.module('app').directive('bindTest', [
'$compile',
function ($compile) {
return {
restrict: 'A',
scope: true,
compile: function (tElem, tAttrs) {
if (!tElem.attr('ng-bind')) {
tElem.attr('ng-bind', 'content');
$compile(tElem)
}
return function (scope, elem, attrs) {
console.log('Linking...');
scope.content = "Content!";
};
}
};
}]);
解决方案
不知道。真的我不明白为什么像上面的小提琴这样的东西不起作用。尝试使用和不使用额外的$compile。
解决方法
我可以解决它可能会在指令中添加一个模板值,但这会将内容包装在一个额外的 div 中,如果可能的话,我希望能够做到这一点。(见小提琴)
第二种解决方法
请参阅此处的小提琴:http: //jsfiddle.net/nstuart/hUxp7/4/(如下面的 Ikarus 博士建议)。我现在正在考虑这是一种解决方法,因为您仍然觉得您应该能够在使用链接功能之前修改模板并且应该找到/应用更改。