我试图在指令的链接函数中的应用程序中附加ngBindHtml
指令。指令所在的模块注入ngSanitize
,如:
angular.module('ui.bootstrap.contextMenu', ['ngSanitize'])
.directive('contextMenu', cm);
其中cm
是指令函数。链接功能如下:
var link = function ($scope, element, attrs) {
element.on('contextmenu', function (event) {
event.stopPropagation();
$scope.$apply(function () {
event.preventDefault();
var options = $scope.$eval(attrs.contextMenu);
var model = $scope.$eval(attrs.model);
if (options instanceof Array) {
if (options.length === 0) {
return;
}
renderContextMenu($scope, event, options, model);
} else {
throw '"' + attrs.contextMenu + '" not an array';
}
});
});
};
其中renderContextMenu
勾勒出将附加到页面正文的html。在这个函数中,我有以下几行代码:
$div.attr('ng-bind-html', text);
$a.append($div);
应该产生类似的东西:
<a><div ng-bind-html="the text"></div></a>
确实如此。问题是文本实际上没有显示。有没有人对此有任何想法?
答案 0 :(得分:1)
我认为&#34; angular-y&#34;这样做的方法是将html代码放在您希望直接绑定到模板中的上下文菜单中,只需隐藏/显示它:只有在有效的contextmenu事件发生并且有选项时才显示它。长度> 0