国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

AngularJS實(shí)現(xiàn)給動(dòng)態(tài)生成的元素綁定事件的方法

2019-11-19 18:30:57
字體:
供稿:網(wǎng)友

本文實(shí)例講述了AngularJS實(shí)現(xiàn)給動(dòng)態(tài)生成的元素綁定事件的方法。分享給大家供大家參考,具體如下:

1 . 我們知道在jQuery中,動(dòng)態(tài)生成一個(gè)元素,如果要在動(dòng)態(tài)生成元素的同時(shí),動(dòng)態(tài)綁定事件,可以通過live/on方法(在jquery3.0中已經(jīng)廢除了bind方法)。

2 . 在AngularJS中,操作DOM一般在指令中完成,事件監(jiān)聽機(jī)制是在對(duì)于已經(jīng)靜態(tài)生成的dom綁定事件,而如果在指令中動(dòng)態(tài)生成了DOM節(jié)點(diǎn),動(dòng)態(tài)生成的節(jié)點(diǎn)不會(huì)被JS事件監(jiān)聽。

舉例來說:

angular.module('myapp',[]).directive('myText',function(){  return{    restrict:'A',    template:'<div ng-click="hello()">Hi everyone</div>',    link:function(scope,ele,attr){    }  }})

這個(gè)指令中,會(huì)生成新的DOM節(jié)點(diǎn):

<div ng-click="hello()">Hi everyone</div>

但是如果不做處理,這里的ng-click事件并不能實(shí)現(xiàn),因?yàn)槭录谋O(jiān)聽在靜態(tài)html頁面生成時(shí)候已經(jīng)完成。那么如何給動(dòng)態(tài)生成的元素,綁定事件,實(shí)現(xiàn)事件的動(dòng)態(tài)監(jiān)聽呢?

3 . 通過$compile服務(wù),編譯DOM,實(shí)現(xiàn)動(dòng)態(tài)的事件綁定

var template:'<div ng-click="hello()">Hi everyone</div>',var content = $compile(template)(scope);

通過這兩句,首先先編譯DOM,然后用編譯后的DOM加入到之前的靜態(tài)節(jié)點(diǎn)中,就能實(shí)現(xiàn)動(dòng)態(tài)綁定事件,之類注意,應(yīng)該注入$compile service

.directive('myText',function($compile){})

完整的代碼如下:

angular.module('myapp',[]).directive('myText',function($compile){  var template:'<div ng-click="hello()">Hi everyone</div>',  return{    restrict:'A',    link:function(scope,ele,attr){       ele.on("click", function() {        scope.$apply(function() {          var content = $compile(template)(scope);          element.append(content);        })      });    }  }})

更多關(guān)于AngularJS相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《AngularJS入門與進(jìn)階教程》及《AngularJS MVC架構(gòu)總結(jié)

希望本文所述對(duì)大家AngularJS程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阳新县| 天津市| 桦川县| 天津市| 浦东新区| 陈巴尔虎旗| 玛纳斯县| 永善县| 尚义县| 常宁市| 武强县| 景东| 庆安县| 上饶县| 陆丰市| 布拖县| 玉山县| 三原县| 威远县| 讷河市| 洛川县| 神农架林区| 洞头县| 德江县| 横峰县| 武宣县| 洮南市| 含山县| 靖西县| 平乡县| 团风县| 灵川县| 临武县| 枣阳市| 民县| 凉城县| 建水县| 永昌县| 荣昌县| 屏边| 水城县|