日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

AngularJS小结

發布時間:2025/3/12 javascript 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AngularJS小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前段時間做AngularJS的經驗總結,這里和大家分享一下:

使用AngularJS的目的是構建一個單頁應用,一直是局部刷新,可以達到類似客戶端的效果

指令主要參數:

restrict : E(元素),A(屬性),C(類名),M(注釋),默認為EA

template :? 指令鏈接DOM模板,例如“<h1>{{head}}</h1>”

templateUrl:替代template,指定模版路徑

replace :指令鏈接模板是否替換原有元素,默認false

scope :有三種參數

  • false :共享父域
  • true :繼承父域,但新建獨立作用域
  • 對象{} :獨立作用域,有三種綁定策略實現數據傳遞
    • @單向綁定,使用時加{{}}
    • =雙向綁定
    • &函數綁定

require : 用于指令和指令之間進行通訊,在使用require指定依賴后,link函數的第四個參數就是所依賴的控制器

require: '?^teacher'這里的問號和^號是尋找策略,前者表示沒有找到則置為null,后者表示在自身指令尋找指令名稱的同時,向上父元素尋找

controller :賦予指令控制器,是用來定義其內部作用域的行為的

link :描述指令元素操作行為,先執行controller設置各個作用域的scope,執行link,設置DOM的各個行為

?

Controller間調用方法 :

使用消息機制,$scope.$emit(EVENT.SUCEESS,{});其父controller如下

$scope.$on(EVENT.SUCEESS, function (event, args) {});

?

Controller間數據共享 :

使用服務做橋梁,因為服務是單例的,多個controller間訪問的是同一份數據,設置好服務gettersetter方法,在任何需要這個數據的地方注入這個服務

angular.factory('sharedList',function() {var list = [];return {addItem: addItem,getList: getList}function addItem(item) {list.push(item);}function getList() {return list;} });

在定義模塊,servicecontroller等時最好使用依賴注入,減少模塊間的耦合

app.controller('worldCtrl',['$scope','$http',function($scope, $http){

?????// ...

}]);

或者myCtrl.$inject = ['$scope', ''];這樣顯式注入

?

設置延時操作是使用angularjs自帶的$timeout而不是setTimeout,后者對scope的修改不會觸發更新,使用

$timeout.cancel(promise對象)取消一個timeoutvar a= $timeout(function(){console.log('執行$timeout回調');return'angular'; }, 1000);

通過ngResource來調用restful服務接口,而不是僅僅使用$http,它只適合處理一些簡單的請求,可以定義

資源在服務端的URL,常用的請求參數類型,一些附加的方法,期望獲得的響應類型等等這些

如下是ngResource的一個簡單例子:

myAppModule.factory('CreditCard',['$resource',function($resource) {return $resource('/usr/:userId/card/:cardId',{userId: 123, cardId:'@id'},{charge: {method:'POST', params: {charge:true}, isArray: false}); }]);

通過CreditCard.get({id : 11})則會生成/user/123/card/11的資源URL

?

UI Bootstrap的使用,由于項目中不用jQuery,所以無法直接使用BootStrap,該項目為每個Bootstrap JS組件添加了內置指令,只需要Bootstrap CSS就可以實現BootStrap的樣式。

?

總結

以上是生活随笔為你收集整理的AngularJS小结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。