在Angularjs {ng}中更改ng-view位置后的文本

时间:2016-07-12 20:41:22

标签: javascript jquery angularjs

我尝试在用户更改ng-view位置后使用此jquery highlight plugin突出显示一些文字;要突出显示的文本位于返回的页面上。

视图更改成功后,我运行highlight()方法:

$scope.$on('$locationChangeSuccess', function(event) {
    console.log('success');
    $("p").highlight(["text"]);
});

我的成功日志已打印,但文字从未突出显示。

我的文件已正确加载,因为我可以在浏览器控制台上运行操作,并且我的已定义文本会突出显示,所以我不确定这里有什么问题。有任何想法吗?

非常感谢!

2 个答案:

答案 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"]);
}

我不知道为什么会这样,但没有它就行不通。如果我找到了可靠的理由,我会更新这个答案

由于