在AngularJS之后加载jQuery

时间:2017-05-15 15:08:55

标签: javascript jquery angularjs

我试图在完成页面加载后运行一个小的jQuery片段,但是即使在页面完全加载后也没有呈现一些AngularJS代码。

jQuery在页面加载后在控制台中工作。

这是我正在尝试的jQuery:

jQuery("a:contains('Clone')").parent().parent().parent().prepend(jQuery("#clone_external"));

但仍然没有发生

克隆按钮不是普通按钮,而是角度按钮

`<div ng-init="projectPath='projects.srk_test_pro_ject';artifactId='artf3596';folderId='tracker1787';folderPath='projects.srk_test_pro_ject/tracker.ACR';returnUrlKey='1494858605684';hasCreatePermission='true'" data-ng-include="'/ctf/js/saturn/tracker/cloneArtifact.html'" ng-bindable="" class="Middle ng-scope"><div data-ng-controller="CloneCtrl" class="ng-scope"><a href="#" data-ng-show="!disableCloneBtn" data-ng-click="clone()" data-i18n-content="{bundle: 'tracker', key: 'clone/label'}" class="">Clone</a></div></div>`

我试过文件准备好并加载在一起,但仍然没有运气

jQuery(document).ready(function() {
   jQuery(window).load(function() {
     jQuery("a:contains('Clone')").parent().parent().parent()
     .prepend(jQuery("#clone_external"));
   });
});

我更喜欢javascript / jQuery解决方案而非角度解决方案。

1 个答案:

答案 0 :(得分:0)

在与该视图对应的角度控制器内,您可以执行以下操作:

.controller('MyCtrl', [function($scope) {
    $scope.$on('$viewContentLoaded', function(){
        // here your jQuery code
    });
}]);

几乎没有精确度:angular已经有了jQuery(jQlite)的内置版本,你应该每次都使用jQlite而不是jQuery。 此外,你应该避免在控制器中使用jQlite / jQuery片段,我很确定有一些“angularjs解决方案”更适合你的情况。