我尝试在用户更改ng-view位置后使用此jquery highlight plugin突出显示一些文字;要突出显示的文本位于返回的页面上。
视图更改成功后,我运行highlight()
方法:
$scope.$on('$locationChangeSuccess', function(event) {
console.log('success');
$("p").highlight(["text"]);
});
我的成功日志已打印,但文字从未突出显示。
我的文件已正确加载,因为我可以在浏览器控制台上运行操作,并且我的已定义文本会突出显示,所以我不确定这里有什么问题。有任何想法吗?
非常感谢!
答案 0 :(得分:1)
在编写Angular代码时,通常不鼓励直接操作DOM,就像通常使用jQuery一样。相反,您应该使用Angular的逻辑属性来创建更改DOM的外观。虽然我无法理解为什么你的特定例子不起作用,但另一种更“角度”的解决方案可能是这样的:
<p ng-style="{'background-color': highlight}"></p>
然后在你的JS文件中,你设置了高亮
的值if bla
$scope.highlight = '#FFFF88';
else
$scope.highlight = '#FFFFFF';
答案 1 :(得分:0)
我只能通过使用Angular的$timeout
并创建超时方法来实现这一目标
$scope.$on('$locationChangeSuccess', function(event) {
console.log('success');
$timeout(callTimeout, 1);
});
...
function callTimeout(){
$("p").highlight(["text", "text2", "text3"]);
}
我不知道为什么会这样,但没有它就行不通。如果我找到了可靠的理由,我会更新这个答案
由于