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

首頁 > 開發 > JS > 正文

AngularJS初始化靜態模板詳解

2024-05-06 16:27:48
字體:
來源:轉載
供稿:網友
這篇文章主要為大家介紹了AngularJS初始化靜態模板,AngularJS初始化靜態模板有兩種方式,一是通過ng-app來自動初始化模塊,也可以通過angular.bootstrap(document, [module])手動啟動應用,感興趣的小伙伴們可以參考一下
 

AngularJS可以通過ng-app來自動初始化模塊,也可以通過angular.bootstrap(document, [module])手動啟動應用,不管用哪種方法,應用啟動后,動態往dom樹里面添加的dom元素,無法執行angular指令,即無法通過ng-model、ng-click給動態添加的dom元素綁定數據和事件,怎么辦?

動態添加dom元素的場景非常常見,如點擊某頁面上修改用戶資料的按鈕,發送ajax請求去查詢用戶資料,然后通過模板引擎將事先寫在頁面里的靜態模板編譯成HTML字符串,最后將HTML字符串append到頁面顯示出來,一般情況下我們會這樣做:

<!DOCTYPE html><html ng-app="app"><head>  <title>demo</title>  <meta charset="utf-8"/>  <script src="http://cdn.bootcss.com/jquery/3.0.0-alpha1/jquery.min.js"></script>  <script id="others_angular_103" type="text/javascript" class="library" src="http://sandbox.runjs.cn/js/sandbox/other/angular.min.js"></script>  <style>    .contani{      width: 100%;      height: 300px;      border: 1px solid red;    }  </style></head><body ng-controller="myCtrl"><script>  var app = angular.module('app',[]);  app.controller('myCtrl', ['$scope','$compile',function(scope,$compile){    scope.valchange = function(){      console.log('value change')    }    scope.edit = function(){      //假設這是ajax返回的數據      scope.username = 'wangmeijian';      scope.password = '000000';      $(".contani").html(myTmpl.innerHTML);    }  }])</script><button ng-click="edit()">修改資料</button><div class="contani"></div><script type="text/html" id="myTmpl">  <form>    用戶名:<input type="text" ng-model="username" />    密碼:<input type="text" ng-model="password" />  </form></script></body></html>

點擊修改資料按鈕,新插入的dom元素并沒有綁定ajax返回的數據,這是因為點擊按鈕前angular已經初始化完畢了,解決辦法當然不是再初始化一次,而是單獨使用$compile編譯靜態模板的HTML,然后再插入dom樹中

<!DOCTYPE html><html ng-app="app"><head>  <title>demo</title>  <meta charset="utf-8"/>  <script src="http://cdn.bootcss.com/jquery/3.0.0-alpha1/jquery.min.js"></script>  <script id="others_angular_103" type="text/javascript" class="library" src="http://sandbox.runjs.cn/js/sandbox/other/angular.min.js"></script>  <style>    .contani{      width: 100%;      height: 300px;      border: 1px solid red;    }  </style></head><body ng-controller="myCtrl"><script>  var app = angular.module('app',[]);  app.controller('myCtrl', ['$scope','$compile',function(scope,$compile){    scope.valchange = function(){      console.log('value change')    }    scope.edit = function(){      //假設這是ajax返回的數據      scope.username = 'wangmeijian';      scope.password = '000000';      //$(".contani").html(myTmpl.innerHTML);      $(".contani").append( $compile(myTmpl.innerHTML)(scope) )    }  }])</script><button ng-click="edit()">修改資料</button><div class="contani"></div><script type="text/html" id="myTmpl">  <form>    用戶名:<input type="text" ng-model="username" ng-change="valchange()" />    密碼:<input type="text" ng-model="password" ng-change="valchange()" />  </form></script></body></html>

以上就是關于AngularJS初始化靜態模板的詳細介紹,希望對大家的學習有所幫助。



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 固阳县| 富民县| 浦江县| 开化县| 台江县| 崇义县| 多伦县| 宜春市| 乌兰察布市| 太仓市| 文昌市| 兖州市| 铁岭市| 积石山| 迁西县| 竹北市| 普格县| 临汾市| 扎囊县| 嘉定区| 涪陵区| 永康市| 龙川县| 湄潭县| 平泉县| 怀仁县| 云梦县| 彭山县| 岚皋县| 台北县| 遵义市| 名山县| 乌苏市| 泽普县| 增城市| 安塞县| 云林县| 旬阳县| 临洮县| 乌兰浩特市| 丁青县|