在AngularJS之后加载jQuery

sat*_*mar 6 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>`
Run Code Online (Sandbox Code Playgroud)

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

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

我更喜欢javascript/jQuery解决方案而不是角度解决方案.

qui*_*mmo 0

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

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

很少有精确之处:Angular 已经有其内置版本的 jQuery (jQlite),只要有可能,您就应该使用 jQlite 而不是 jQuery。此外,您应该避免在控制器内使用 jQlite/jQuery 片段,并且我非常确定有一些“angularjs 解决方案”更适合您的情况。