国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彭阳县| 哈尔滨市| 高邮市| 黄骅市| 黄陵县| 黄平县| 维西| 泗水县| 永善县| 石景山区| 安图县| 龙江县| 乐清市| 上高县| 阳谷县| 修武县| 宜春市| 林口县| 中阳县| 文化| 玛曲县| 贺州市| 修水县| 济南市| 汾西县| 江达县| 东源县| 石狮市| 乌恰县| 万安县| 大足县| 阿拉善盟| 行唐县| 胶州市| 井研县| 临湘市| 黑水县| 三原县| 曲靖市| 社旗县| 阿城市|