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');
});
});
Он работает для элемента с классом = "aaa", но не работает для элементов внутри
<ng-view></ng-view>
Код jQuery находится вне контроллера.
документ, готовый в jquery, может произойти до того, как угловая закончит загрузку (например, перед тем, как ввести ng-view). Это даже более верно, если вы используете систему сценария по требованию, например require.js.
Таким образом, вы должны
A: Используйте угловую версию документа,
angular.element(document).ready(function () {
$("#aaa").on("click",function(){
alert('clicked');
});
$("#bbb").on("click",function(){
alert('clicked');
});
});
B: (угловой путь)
Создайте угловую директиву для любых пользовательских элементов, которые вы хотите, или форму или виджет, или w/e, которые вы строите (разделите его), чтобы вы могли обрабатывать ссылку или компилировать функцию директив, где вы можете подписаться на события на элемент (например, якорь) и иметь доступ к объектам события.
<ng-view></ng-view>
должен быть<div ng-view></div>
<div ng-view></div>
но это не имеет значения. @AdityaParab