Mar*_*y.H 2 javascript jquery angularjs
我正在将我的多重php + jquery网站转换为单页角应用程序.但是我已经用jquery编写了很多代码,所以只打算在路由等方面交换php for angular.
我遇到的一个问题是我无法弄清楚的是jquery点击事件我一直在用完,直到转换停止工作.如果我从控制台调用该函数,那么更改代码以使其从ng-click中触发它将起作用.jquery正在工作,我在提到的函数中放了一些jquery,它运行正常.
<!doctype html>
<html ng-app="myApp">
<head>
<link href="css/header.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.11/angular.js"></script>
<script src="https://cdn.firebase.com/js/client/2.2.4/firebase.js"></script>
<script src="https://cdn.firebase.com/libs/angularfire/0.9.2/angularfire.min.js"></script>
<script type='text/javascript' src="js/jquery.min.js"></script>
<script type='text/javascript' src='js/header.js'></script>
<script type='text/javascript' src='main.js'></script>
</head>
<header-page></header-page>
Run Code Online (Sandbox Code Playgroud)
main.js:
var mainApp = angular.module('myApp', ['firebase', 'headerPage']);
mainApp.directive('headerPage', function(){
return{
restrict: 'E',
templateUrl: 'html/header.html'
}
});
Run Code Online (Sandbox Code Playgroud)
header.js
(function() {
var app = angular.module('headerPage', ['firebase']);
app.controller("headController", ['$http', '$firebase', '$scope', '$filter',
function($http, $firebase, $scope, $filter) {
//most of the code
}
]);
})();
$("#myElement").on("click", function() {
console.log("clicked");
});
Run Code Online (Sandbox Code Playgroud)
原因是,当您将事件绑定到元素时#myElement,元素尚不存在.由于该元素是作为指令模板的一部分呈现的,因此您需要在指令链接函数中移动绑定处理程序.好吧,你可以在技术上使用事件委托来解决问题,但这只是黑客的另一个黑客攻击.最好的选择是ng-click在元素上使用它(你已经说过你尝试过了).
| 归档时间: |
|
| 查看次数: |
16512 次 |
| 最近记录: |