亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Angular ng-animate和ng-cookies用法詳解

2019-11-19 14:00:19
字體:
來源:轉載
供稿:網友

ng-animate

本文講一下Angular中動畫應用的部分。

首先,Angular本生不提供動畫機制,需要在項目中加入Angular插件模塊ngAnimate才能完成Angular的動畫機制,Angular也不提供具體的動畫樣式,所以說,它的自由度和可定制性挺大的。

那么,剛開始需要在項目的入口html文件中引入Angular框架(angular.js),然后引入angular.animate.js。

在項目的js入口文件app.js中,新建項目模塊,并且添加所依賴的模塊ng-Animate(有其他需要的模塊的話也可以引入,順序沒關系)

var demoApp = angular.module('demoApp', ['ngAnimate','ui.router']);

這里中間插入一句,建議Angular中的依賴注入用如下模式,在ads、bds或者其他的前端自動化工具打包壓縮后不會產生問題,因為僅僅通過 給function傳參的形式注入依賴,Angular是會對注入的變量名有嚴格的要求(如$scope變量名在控制器中注入時變量名只能 寫$scope):

//控制器.js、指令.js、過濾器.js的依賴注入建議都用這種方式寫//這是ui-route的配置,在app.jsdemoApp.config(['$stateProvider', '$urlRouterProvider',function($stateProvider, $urlRouterProvider){ // your code.}]);

好了,回到正題上。引入了ngAnimate之后,Angular的動畫機制就能生效了。

Angular文檔中寫到如下指令和支持的動畫

那么,怎么使用呢? 本文拿ng-repeat這個指令來做個介紹,其他的一些指令使用方式幾乎相同,可類推。

ng-repeat 主要是對一個list的展示,這些元素是是被創建出來加入到DOM結構中去的,那么,它的動畫過程為:

創建元素 -> .ng-enter -> .ng-enter-active -> 完成,呈默認狀態

默認狀態 -> .ng-leave -> .ng-leave-active -> 銷毀元素

所以可以通過設置.ng-enter(.ng-leave) 和 .ng-enter-active(.ng-leave-active) 的樣式,加上css3的動畫來顯示出動畫,如:

<!-- HTML片段 --><div ng-init="users = [1,2,3,4,5]"></div><input class="filter-btn" type="search" ng-model="u" placeholder="search item" aria-label="search item" /><ul><li class="item" ng-repeat="user in users | filter: u as result"> {{user}}</li></ul>/* css片斷 *//*ng-repeat的元素*/.item{ -webkit-transition: all linear 1s; -o-transition: all linear 1s; transition: all linear 1s;}/*動畫開始前*/.item.ng-enter{ opacity:0;}/*動畫過程*/.item-ng-enter-active{ opacity:1;}

這樣的效果是對所有元素同時應用,可能實際運用中需要有一個先后的漸變出現的效果,這時候可以設置ng-enter-stagger來實現.

/*不同時出現*/.item.ng-enter-stagger { transition-delay:0.5s; transition-duration:0s;}

同樣的,這些angular animate提供的動畫的class也可以應用到頁面切換中去。自定義動畫(基于class)

 在添加移除class時自定義動畫

.class-add     ->   .class-add-active  ->   .class

如果通過寫css的方式還無法滿足需求,當然,還可以通過JS的方式來控制動畫,下面的代碼你可以理解為是一個模版

/* CLASS 是需要應用的class名,handles是支持的操作,如下圖所示*//* 這里如果是應用在ui-view 的class上,模版會疊加(坑)*/demoApp.animation('.classname',function(){return { 'handles':function(element,className,donw){  //... your code here  //回調  return function(cancelled){  // alert(1);  } } }})

支持的操作:

ng-cookies

$cookies[name] = value;

這個是angular設置cookies方法

$cookieStore
提供一個被session cookies支持的鍵值對(字符串-對象)存儲。被存入和取出的對象將自動通過angular的toJson/fromJson進行序列化/反序列化。

$cookies
提供瀏覽器cookies的讀/寫訪問操作。

這兩個都要引入ngCookies模塊才能使用,這個模塊在1.4版本之后就有了

從源碼中得知$cookieStore返回了三個方法get put remove 他們分別用toJson/fromJson進行序列化/反序列化

簡單的寫了幾個例子來測試下

<!DOCTYPE html><html ng-app="AutumnsWindsApp" ng-controller="aswController"> <head>  <meta charset="UTF-8">  <title></title> </head> <script src="http://code.angularjs.org/1.2.9/angular.min.js"></script> <script src="http://code.angularjs.org/1.2.9/angular-cookies.min.js"></script><body>  {{title}} </body> <script>  var AutumnsWindsApp = angular.module('AutumnsWindsApp', ['ngCookies']);  AutumnsWindsApp.controller('aswController', function($cookies, $cookieStore, $scope) {   $cookies.name = 'autumnswind';   $scope.title = "Hello, i'm autumnswind :)";   $cookieStore.put("skill", "##");   //刪除cookies   $cookieStore.remove("name");   //設置過期日期   var time = new Date().getTime() + 5000;   $cookieStore.put("cookie", "Hello wsscat", {    expires: new Date(new Date().getTime() + 5000)   });   $cookieStore.put("objCookie", {    value: "wsscat cat cat",    age: "3", }, {  expires: new Date(new Date().getTime() + 5000)   });   console.log($cookies);   console.log($cookies['objCookie']);  }) </script></html>

其實平時我們這樣就可以把自己需要的cookies設置進去

$cookies.name = 'autumnswind';

但是當我們要設置一個有效時間的時候我們就用這樣的方法把它設置進去

var time = new Date().getTime() + 5000;   $cookieStore.put("cookie", "Hello wsscat", {    expires: new Date(new Date().getTime() + 5000)   });

我們還可以進行刪除等操作

$cookieStore.remove("name");

補充:

ng-repeat-track by用法:

<div ng-repeat="links in slides"> <div ng-repeat="link in links track by $index">{{link.name}}</div></div>

Error: [ngRepeat:dupes]這個出錯提示具體到題主的情況,意思是指數組中有2個以上的相同數字。ngRepeat不允許collection中存在兩個相同Id的對象

For example: item in items is equivalent to item in items track by $id(item). This implies that the DOM elements will be associated by item identity in the array.
對于數字對象來說,它的id就是它自身的值,因此,數組中是不允許存在兩個相同的數字的。為了規避這個錯誤,需要定義自己的track by表達式。例如:

item in items track by item.id或者item in items track by fnCustomId(item)。
嫌麻煩的話,直接拿循環的索引變量$index來用item in items track by $index

自定義服務的區別:

factory()----函數可以返回簡單類型、函數乃至對象等任意類型的數據 一般最為常用
service()-----函數數組、對象等數據
factory和service不同之處在于,service可以接收一個構造函數,當注入該服務時通過該函數并使用new來實例化服務對象

constant()----value()方法和constant()方法之間最主要的區別是,常量可以注入到配置函數中,而值不行,value可與你修改,constant不能修改

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品国产成人av| 久久99国产精品自在自在app| 一区二区三区国产视频| 久久精品国产久精国产思思| 欧美激情视频一区二区三区不卡| 欧美日韩一区二区三区在线免费观看| 国产精品一区av| 欧美另类在线观看| 亚洲欧美国产日韩中文字幕| 成人午夜一级二级三级| 日韩欧美视频一区二区三区| 亚洲国产成人久久| 92裸体在线视频网站| 久久久久久久久久久成人| 国产精品精品视频一区二区三区| 91久久在线视频| 日韩精品电影网| 懂色av中文一区二区三区天美| 国产97在线亚洲| 综合国产在线视频| 中文字幕成人精品久久不卡| 日韩在线视频观看| 亚洲剧情一区二区| 精品国内产的精品视频在线观看| 国产一区二区丝袜高跟鞋图片| 日本高清+成人网在线观看| 国产精品流白浆视频| 国产精品精品视频一区二区三区| 黑人与娇小精品av专区| 亚洲男人天堂古典| 青青草成人在线| 美日韩丰满少妇在线观看| 91欧美精品成人综合在线观看| 国产91精品高潮白浆喷水| 日韩在线观看免费网站| 亚洲欧美制服第一页| 欧美激情综合色综合啪啪五月| 91色在线视频| 亚洲毛茸茸少妇高潮呻吟| 97免费在线视频| www.99久久热国产日韩欧美.com| 欧美在线视频免费| 三级精品视频久久久久| 亚洲成色777777女色窝| 亚洲黄色片网站| 久久久久久国产精品三级玉女聊斋| 久久久精品国产一区二区| 国产精品一区专区欧美日韩| 在线亚洲男人天堂| 亚洲男人天堂2024| 国产精品日韩久久久久| 亚洲精品女av网站| 亚洲va国产va天堂va久久| 国产精品视频区| www国产精品com| 欧美成人黄色小视频| 55夜色66夜色国产精品视频| 日韩在线中文字幕| 亚洲精品免费av| 91精品国产高清久久久久久久久| 精品呦交小u女在线| 亚洲第一区中文字幕| 国产丝袜视频一区| 久国内精品在线| 日韩av免费看网站| 日韩美女毛茸茸| 国产精品久久一区| 日韩精品免费在线视频观看| xx视频.9999.com| 91黄色8090| 奇米影视亚洲狠狠色| 国产成人综合精品| 欧美电影在线观看| 欧美裸体xxxx极品少妇软件| 98视频在线噜噜噜国产| 俺也去精品视频在线观看| 国产精品视频网站| 欧美午夜电影在线| 久久香蕉精品香蕉| 久久久欧美一区二区| 91中文字幕在线观看| 欧美黄色片免费观看| 日韩精品中文字幕视频在线| 国产91av在线| 成人免费午夜电影| 国产精品27p| 国产v综合ⅴ日韩v欧美大片| 亚洲iv一区二区三区| 久久久久久久久久久久av| 97香蕉超级碰碰久久免费软件| 日韩欧美中文字幕在线观看| 久久久久成人精品| 日韩美女免费线视频| 国产成人精品999| 日本免费一区二区三区视频观看| 孩xxxx性bbbb欧美| 欧美在线视频一二三| 日本精品性网站在线观看| 日韩av最新在线| 欧美黄色片免费观看| 国产福利视频一区二区| 国产一区二区在线免费| 精品亚洲aⅴ在线观看| 日韩在线免费观看视频| 日韩网站免费观看高清| 欧美电影免费观看电视剧大全| 黑人巨大精品欧美一区二区一视频| 日韩在线观看av| 国产亚洲一区二区在线| 欧美在线视频一区二区| 欧美午夜性色大片在线观看| 国产精品久久久久7777婷婷| 日韩欧美综合在线视频| 欧美日韩一区二区免费在线观看| 91系列在线播放| 亚洲人成网站在线播| 91青草视频久久| 高清日韩电视剧大全免费播放在线观看| 国产精品成人国产乱一区| 日韩精品中文字| 国产日韩精品综合网站| 伊人亚洲福利一区二区三区| 欧美精品videosex极品1| 亚洲精品日韩av| 日韩av在线电影网| 66m—66摸成人免费视频| 欧美成人免费全部观看天天性色| 欧美激情精品久久久久久免费印度| 精品久久久久久中文字幕一区奶水| 亚洲女同精品视频| 色先锋久久影院av| 欧美做爰性生交视频| 国产精品免费久久久| 日韩国产欧美区| 国产欧美日韩亚洲精品| 亚洲网站在线观看| 欧美重口另类videos人妖| 国产亚洲视频在线| 国产精品777| 91在线播放国产| 色视频www在线播放国产成人| 亚洲free性xxxx护士白浆| 国产精品久久久久999| 国产日韩欧美在线观看| 国产一区二区黑人欧美xxxx| 国产亚洲精品91在线| 另类色图亚洲色图| 日韩一区二区在线视频| 97精品视频在线播放| 欧美日韩裸体免费视频| 国产精品99蜜臀久久不卡二区| 欧美一区三区三区高中清蜜桃| 亚洲一区二区久久| 欧美一区二区色| 超碰精品一区二区三区乱码| 国产精品视频大全| 国产精品久久久久久久久久小说| 欧美丝袜美女中出在线| 国产精品爽黄69| 亚洲丁香婷深爱综合| 久久免费视频这里只有精品| 国精产品一区一区三区有限在线| 亚洲国产精品嫩草影院久久| 日韩专区在线观看|