jQuery或jqlite不使用<ng-view> </ng-view>中的元素

时间:2015-10-02 04:16:30

标签: javascript jquery angularjs jqlite

的index.html:

<div>
<p class="aaa">ppp</p>
<ng-view>

</ng-view>
</div>

general.html

<p class="bbb">pppppp</p>

的javascript

var app = angular.module('StarterApp', ['ngMaterial','ngRoute','ngImgCrop']);

app.config(function($routeProvider){
        $routeProvider
            .when('/general',
                {
                    templateUrl:'../view/general.html'
                })
});

$(document).ready(function() {
    $(".aaa").on("click",function(){
         alert('clicked');
    });
    $(".bbb").on("click",function(){
         alert('clicked');
    });
});

它适用于具有class =“aaa”的元素,但不适用于

中的元素
 <ng-view></ng-view>

jQuery代码在控制器之外。

1 个答案:

答案 0 :(得分:0)

jquery中的文档就绪可以在角度加载完成之前发生(例如在注入ng-view之前)。如果您使用像require.js这样的随需应变脚本系统,则更是如此。

因此你应该

答:使用Angular的文档版本,

angular.element(document).ready(function () {
    $("#aaa").on("click",function(){
     alert('clicked');
    });
    $("#bbb").on("click",function(){
         alert('clicked');
    });
});

B :(有角度的方式)

为您想要的任何自定义元素或窗体,窗口小部件构建角度指令,或构建它(或隔离它),以便您可以处理指令链接或编译功能,然后您可以在其中订阅到元素上的事件(如锚),并可以访问它的事件对象。