我正在对美化的输出进行后处理,以突出显示代码中的某些行。我正在使用这样的代码,工作正常:
x = angular.element('.prettify li:nth-child(' + zz['line'] + ')');
x.css('background-color', 'yellow');
x.prop('title', zz['message']);
现在,我不想使用title标签在行上显示消息,而是使用Bootstrap工具提示。上述代码的明显变化是:
x.prop('tooltip', zz['message']);
然而,这不起作用。我认为我需要告诉Angular重新编译块,所以它选择了tooltop的指令(因此问题的标题)。
更新 - 这是一个显示我想要做的事情的小提琴:http://jsfiddle.net/6Y4d9/
答案 0 :(得分:2)
重新编译thr块 - 您应该使用 $ compile 服务,如下所示:
$compile(block)(scope)
但是,只需要你的任务:
scope.$apply()
和
将x.prop
更改为x.attr
答案 1 :(得分:0)
如果您需要强制角度来重新消化某个范围,您只需要打电话:
$scope.$apply();
这将使$ scope重新应用自上次应用以来可能发生的任何更改。这些类型的apply仅需要在创建交互的初始事件时运行,因为来自角度应用程序之外的事件处理程序。
您拥有的另一个选择是致电:
$scope.$apply(function(){
//put your code in here, and it will run your code and then apply it to the current scope
});