我有这个指令要编译:
var app = angular.module('mobApp.services');
app.directive('compile', ['$compile', function ($compile) {
return function(scope, element, attrs) {
scope.$watch(
function(scope) {
return scope.$eval(attrs.compile);
},
function(value) {
element.html(value);
$compile(element.contents())(scope);
}
);
};
}])
我在我的模板中使用它:
<p compile="post.details | linky:'_blank'"></p>
如果数据有任何链接,其渲染效果不错,但不会将<b>
等文本呈现为<b>
。我只想将<b>
设为<b>
而不将内部文字加粗。
如果我使用ng-html-bind
所有工作正常但链接不起作用。如果我使用linky
链接工作正常但渲染不起作用。
答案 0 :(得分:1)
您可以尝试以下更改吗?
var app = angular.module('mobApp.services');
app.directive('compile', ['$compile', function ($compile) {
return function(scope, element, attrs) {
scope.$watch(attrs.compile, function(html) {
element.html(html);
$compile(element.contents())(scope);
});
};
}])
答案 1 :(得分:0)
您可以编写一个自定义过滤器,首先使用linky过滤器并将标签放回到那里
module.filter('linkyWithHtml', function($filter) {
return function(value) {
var linked = $filter('linky')(value);
var replaced = linked.replace(/\>/g, '>').replace(/\</g, '<');
return replaced;
};
});
&#13;