『壹』 如何用angularjs實現拋物線購物車效果
、使用任何語言創建一個服務端:
public class ShoppingCar
{
public string Title { get; set; }
public decimal UnitPrice { get; set; }
public int Count { get; set; }
}
public ActionResult GetCar()
{
List<ShoppingCar> cars = new List<ShoppingCar>
{
new ShoppingCar { Title="蘋果",Count=1,UnitPrice=2.5m},
new ShoppingCar { Title="香蕉",Count=3,UnitPrice=1.5m},
new ShoppingCar { Title="苦瓜",Count=1,UnitPrice=3.5m},
new ShoppingCar { Title="黃瓜",Count=3,UnitPrice=2.2m}
};
return Json(cars,JsonRequestBehavior.AllowGet);
}
『貳』 angularjs 通過ng-repeat顯示雙重菜單,怎麼解決
解決辦法:直接網路一下就知道了
『叄』 angular js 帶復選框購物車怎麼寫
前段時間研究過這個,並且寫了一個購物車的小例子,今天一個偶然的機會提起,可惜忘了差不多了,糊里糊塗的也沒說清楚。翻出來,提醒下自己,保持一顆學習的心,順便再復習一遍。
先上一個最終的效果圖
構圖比較簡單,主要功能:
1. 點擊購買的時候 進行數量的增加或者條目的增加,同時總價格變化;
2. 進行刪除的時候,刪除當前條目,總價變化;
3. 進行數目增加減少的時候,總價格變化;
好,下面說代碼,抓耳撓腮的想想,有點久遠印象不太深刻了;
關於angular的基本用法,這里就不嘮叨了,網上好多的教程;
首先是商品列表,這里自己隨意列舉了一些
<script>
var items = [{
id : '1',
name : '蜂蜜',
price : 30.00
},{
id : '2',
name : '黃豆醬',
price : 15.8
},
{
id : '3',
name : '護手霜',
price : 15.00
},
{
id : '4',
name : '保溫杯',
price : 29.9
},
{
id : '5',
name : '滑鼠',
price : 39.9
},{
id : '6',
name : '米老頭',
price : 8.8
}];
//購物車中的數據;
var boughtList = {};
</script>
主要的html代碼,重新注釋下也讓自己再熟悉一遍
<div class="wrap" ng-controller="showItem"><!-- ng-controller ng的語法 -->
<h5>商品列表</h5>
<div class="left itembox border" >
<ul>
<li class="left" ng-repeat="value in items" item-id={{value.id}}>
<p>{{value.name}}</p>
<p> {{value.price}}</p>
<p>
<a href="javascript:void(0);" ng-click="buyAction($event);"
name={{value.name}} price={{value.price}} item-id={{value.id}} >購買</a>
<!-- dom 事件時的$event 就相當於普通dom事件中的window.event 對象-->
</p>
</li>
</ul>
</div>
<!-- 購物車中的數據 -->
<div class="boughtlist border">
<ul>
<li ng-repeat="value in boughtList" item-id={{value.id}}>
<span>{{value.name}}</span>
<span>{{value.price}}</span>
<span style="width:100px;" item-id={{value.id}}>
<a href="javascript:void(0);" ng-click="value.num=value.num+1;changeNum($event,value.num);" >+</a>
<input class="border" type="number" min=0 ng-model="value.num" ng-init="value.num=1" ng-change="changeNum(value.id,value.num);"/>
<!-- 這里的ng-change 是值發生變化時觸發的事件,其實這里我原先想處理成 一個自動的mvc過程,無果,只好加事件了-->
<a href="javascript:void(0);" ng-click="value.num=value.num-1;changeNum($event,value.num);">-</a>
</span>
<a href="javascript:void(0);" item-id={{value.id}} ng-click="delItem($event);" >刪除</a>
</li>
</ul>
<p ng-init=0 >總價格:{{ total | number:1}}</p>
<!-- angular的優勢體現,number:1也就是number數據,小數點後一位。-->
</div>
我記得,當時覺得比較麻煩的是 input沒有ng-blur事件;
看下js代碼
var ng = angular;
var myapp = ng.mole('myapp',[]);
var common = {
getTotal : function(total){ //每次重新清零 算出總價,這樣的話為什麼還要傳total參數?當時怎麼想的?
total = 0;
for(var k in boughtList){
if(boughtList[k]){
if(boughtList[k].num <=0){
boughtList[k].num = 0;
}
total += boughtList[k].num*boughtList[k].price;
}
}
return total;
}
}
myapp.controller('showItem',function($scope){
$scope.items = items;
$scope.boughtList = boughtList;
$scope.total = 0;
for(var k in boughtList){
if(boughtList[k]){
$scope.total += boughtList[k].num*boughtList[k].price;
}
}
$scope.buyAction = function($event){
var el = $event.target;
var id = el.getAttribute('item-id');
if(boughtList[id]){
boughtList[id].num += 1;
}else{
var arr = [];
arr.name = el.getAttribute('name');
arr.price = el.getAttribute('price');
arr.num = 1;
arr.id = id;
boughtList[id] = arr;
}
$scope.total = common.getTotal($scope.total);
}
$scope.delItem = function($event){
var li = $event.target.parentNode;
li.parentNode.removeChild(li);
var id = $event.target.getAttribute('item-id');
if(boughtList[id]){
delete boughtList[id];
}
$scope.total = common.getTotal($scope.total);
}
$scope.changeNum = function($event,num){
var id;
if(typeof $event == 'string'){
id = $event;
}else{
id = $event.target.parentNode.getAttribute('item-id');
}
boughtList[id].number = num;
$scope.total = common.getTotal($scope.total);
}
});
『肆』 angularjs 可以從ng-repeat中循環出五條數據嗎
循環輸出列表很多項目在web服務端做,前端做好模版後後端寫jsp代碼,雙方需要緊密合作,分清責任。有些項目由後端提供restful方法,前端用ajax調用自己循環,這種一般是大把的jquery拼字元串,太不直觀,有人搞出了js模板,也沒好到哪裡去。
用AngularJS就爽多了,語法和JSP類似:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<!doctype html>
<html ng-app>
<head>
<meta charset="utf-8">
<title>ng-repeat directive</title>
</head>
<body>
<table ng-controller="CartController">
<caption>我的購物車</caption>
<tr>
<th>序號</th>
<th>商品</th>
<th>單價</th>
<th>數量</th>
<th>金額</th>
<th>操作</th>
</tr>
<tr ng-repeat="item in items">
<td>{{$index + 1}}</td>
<td>{{item.name}}</td>
<td>{{item.price | currency}}</td>
<td><input ng-model="item.quantity"></td>
<td>{{item.quantity * item.price | currency}}</td>
<td>
<button ng-click="remove($index)">Remove</button>
</td>
</tr>
</table>
<script src="../lib/angularjs/1.2.26/angular.min.js"></script>
<script>
function CartController($scope) {
$scope.items = [
{name: "雷柏(Rapoo) V500 機械游戲鍵盤 機械黃軸", quantity: 1, price: 199.00},
{name: "雷柏(Rapoo) V20 光學游戲滑鼠 黑色烈焰版", quantity: 1, price: 139.00},
{name: "AngularJS權威教程", quantity: 2, price: 84.20}
];
$scope.remove = function (index) {
$scope.items.splice(index, 1);
}
}
</script>
</body>
</html>
ng-repeat指令生命在需要循環內容的元素上,items和控制器上的變數名對應,item是為數組中單個對象起的別名。$index可以返回當前引用對象的序號,從0開始,另外還有$first、$middle、$last可以返回布爾值,用於告訴你當前元素是否是集合中的第一個中間的最後一個元素。
『伍』 angularjs中有沒有求和的
剛剛試了一下 model-1 --model2能算出兩個數的和!
代碼回如下答:
<div ng-controller="contro">
<input type="text" ng-model="numa" />
<span>+</span>
<input type="text" ng-model="numb"/>
<p>{{numa -- numb}}</p>
<h1></h1>
</div>
『陸』 angularjs里的watch怎麼使用
體驗總結:
對於Smartwatch×5的亮點,筆者覺得最大的意義在於其基於原生態安卓系統開發的功能以及應用,是目前國產智能手錶中最接近智能手機的,所以算得上智能手錶的里程碑之作,當然也少不了缺點,總的說來瑕不掩瑜,更為重要的是,在接下來的型號更新中,相信大有可為。
在優點方面;
1、 功能無限接近手機:接打電話、上網、接收簡訊、停車計時、新聞瀏覽、股市監測等,同時擁有智能手錶測心率、計步、看天氣、GPS定位等功能;
2、 系統比較穩定,這是很多智能手錶無法比擬的,聰明的智能手錶工程師則採用藏拙策略,體驗不好的不放出來;急於求成的則冒險的將不成熟的功能放出來,對消費者是否公平,自有定論;
3、 硬體以及續航都屬於中上等,比起國產智能手錶,還是領先一步;
4、 對用戶人群的定位以及附加應用比較到位,如前文所說,Smartwatch直至商務達人,在滿足商務達人日常工作需要的同時還增添一些精準的服務;
5、 在快捷鍵設置方面,Smartwatch顯然考慮到了手錶的應用場景,不可能一直在屏幕上劃來劃去,除了屏幕的快捷方式,三個按鈕其實都承擔著快捷鍵方式,中間的開關機鍵在亮屏狀態下短按兩秒會有聲音開關、屏幕亮度以及翻腕亮屏、關掉電源和省電模式快捷方式,所以很多功能只需要兩步即可。
附帶艾爾侖Smartwatch×5詳細參數
系統: Android4.4
RAM:512MB
ROM:4G
可用內存:2G
協處理器: sensor hub
網路:中國移動/中國聯通
SIM卡:Nano SIM
屏幕:1.4°全視角/400×400/Retina 16Million color/392PPI
連接:USB/藍牙/WiFi
無線網:WiFi/WCDMA 3G/GPRS
免提:支持
多媒體:音樂、視頻、錄音
GPS:支持
功能:獨立通訊、手機藍牙通知、心率、運動計步、無線上網等
電池容量:450mAh
待機時間:72小時
表盤材質:316L不銹鋼亞面砂
表帶材質:牛皮
重量:90g
『柒』 angularjs repeat 表格頭部怎麼設置
JavaScriptObject本身就不會保證key之間的排序(.e,object,orfunction)但在目前的modernbrowsers,現實是這樣的:……嗯,先賣個關子,我們拿你的例子,來試一段代碼:varalphaPrefixedRecords={"y2013":'whatever',"y2016":'whatever',"y2012":'whatever'};varnumAlphaRecords={"2013y":'whatever',"2016y":'whatever',"2012y":'whatever'};varpureNumRecords={2013:'whatever',2016:'whatever',2012:'whatever'};varnumStringRecords={"2013":'whatever',"2016":'whatever',"2012":'whatever'};varfloatNumRecords={20.13:'whatever',20.16:'whatever',20.12:'whatever'};varfloatStringRecords={"20.13":'whatever',"20.16":'whatever',"20.12":'whatever'};//insertallkeysintoanarraybased//(obj){varkey,i=0;vararr=[];for(keyinobj){if(obj.hasOwnProperty(key)){arr.push(key);i=i+1;}}returnarr;}console.log('fuckepbyJS:')console.log('purenumkeys:',iterateKey(pureNumRecords));console.log('numstringkeys:',iterateKey(numStringRecords));console.log('basedonorderofdefinition:')console.log('alphaprefixedkeys:',iterateKey(alphaPrefixedRecords));console.log('numalphakeys:',iterateKey(numAlphaRecords));console.log('floatnumkeys:',iterateKey(floatNumRecords));console.log('floatstringkeys:',iterateKey(floatStringRecords));輸出:fuckepbyJS:purenumkeys:["2012","2013","2016"]numstringkeys:["2012","2013","2016"]basedonorderofdefinition:alphaprefixedkeys:["y2013","y2016","y2012"]numalphakeys:["2013y","2016y","2012y"]floatnumkeys:["20.13","20.16","20.12"]floatstringkeys:["20.13","20.16","20.12"]結論是什麼呢?1.對於類型是number或可轉換為整數number的string類型的key,forin無論如何都會按照number的大小排序,這類似於數組的行為。2.對於alphanumericalstring類型的key,forin會按照定義object時的key順序排列。Angular可能會做一些內部排序,但是你也看出來了,依靠objectkey實現排序的做法是不可靠的。即使你是JSninja,寫出一段高深莫測的代碼,你以後自己看到了都會想我艹這什麼鬼。所以少年,對於你這種年份的usecase,還是乖乖地改成數組,然後手動order吧。
『捌』 微信小程序可不可以引入angularjs
微信小程序其實就是內置於微信里的APP。比如現有微信里的滴滴打車,就是小程序雛形,這樣用專戶如果想用滴屬滴打車,就不需下載了,只需要關注滴滴打車的小程序就可。現在微信小程序推出,你可以先搭建好自己的應用,為微信小程序的推出做准備
『玖』 如何看待 Angular 2.0 使用的 AtScript 是 TypeScript 的超集
AtScript這門語言是由Google的Angular團隊創建的,最直接的目的是用於編寫Angular2.0,注意這里為什麼說Angular,而不是說AngularJS,是因為Angular還存在一個Dart版本,也就是AngularDart。當前版本的Angular是需要維護JavaScript和Dart兩套代碼的,在2.0中,就只會有一套了。
有時候會覺得國外大公司真是小題大做,為了一個應用框架而創建一門新語言,聽上去很不可思議,但認真想想,這裡面有很多權衡。
既然談AtScript,就免不了要談Angular2.0,這是超越1.x版本的一次徹底革新。這么激進的革新,出發點在哪裡呢?除了解決自身的一些問題,更重要的意義在於對未來標準的迎合,這些標准主要包括:
- mole
- Web Components
- class
- observe
- promise
mole的問題很好理解,JavaScript第一次有了語言上的模塊機制,而Web Components則是約定了基於泛HTML體系構建組件庫的方式,class增強了編程體驗,observe提供了數據和展現分離的一種優秀方式,promise則是目前前端最流行的非同步編程方式。
從以上幾個方面,我們可以很清楚地看到這些東西想要解決的問題,那就是:Web應用的大型化。何謂大型化?這個大,更多指的是高樓大廈之大,而不是一大片園林的大。
最近這些年我們也可以看出,整個Web生態是逐步向應用化傾斜的,越來越大比例的Javascript代碼被用於構建應用型網站,或者各類本地應用,Hybrid應用,而不是展示型網站。之前版本的JavaScript在構建大型Web應用的過程中,是存在一定不足的。
我曾經有個比喻,把Java、C#這類東西比喻成鋼筋混凝土,JavaScript比喻成竹木,兩者各有其適合的領域,其中也有重疊。亭台樓閣,輕靈精巧,如果不用竹木搭建,遍身都是土氣。如果蓋摩天大樓,也硬要用竹木搭建,恐怕不太合適。
我們現在所看到的絕大多數JavaScript應用的規模都嚴重偏小,傳統軟體廠商做出的Office,PhotoShop,AutoCAD,Matlab,還有魔獸、文明這類大型游戲,如果想要用任何一種腳本語言去實現,都會面臨很多困難,那就是大規模協作的不便利性。
人類工業史上有不少優秀產品,易於生產,經久耐用,比如桑塔納轎車,比如AK47突擊步槍,這類產品的共同特點是皮實,不容易壞,即使壞了也容易修。在工業時代,組織任何領域的大型工程,都應當盡量把實現搞得簡單一些。
所以從這個角度可以解釋Java的流行,盡管黑它的人很多,但它在大型軟體的協作中,確實有獨特的優勢。只需經過較少的培訓,就可以上手使用,出現問題也容易定位,大型軟體的開發過程就需要這個。
『拾』 angular路由 angular-ui-router 的api 求助
我們看到這項技術已經應用在了許多的網頁上。比如購物車,注冊表單,入職流程以及許多多步表單,讓用戶更容易在線填寫表單。 下面我們將構建它: 使用UI Router,它能內嵌狀態,為每個狀態顯示不同的view,我們能讓多步表單變得相當的容易。 為了快速的理解UI Router是怎樣工作的,看我們的文章:AngularJS使用UI-Router路由 讓我們言歸正傳,開始創建我們的最棒的表單! 創建工程 創建工程有個模板結構/bootswatch/3/ajax/libs/angularjs/1/ajax/libs/angular-ui-router/0/ajax/libs/angularjs/1.2.16/angular-animate.min.js"></script> <script src="app.js"></script> </head> <!-- apply our angular app --> <body ng-app="formApp"> <div class="container"> <!-- views will be injected here --> <div ui-view></div> </div> </body> </html> 完成所有文件的引入後,讓我們進入 app.js 開始創建Angular應用和最基本的路由配置。 注意我們是如何把Angular App (formApp) 應用到 body 上面的。 創建我們的Angular App app.js 現在我們來創建應用和路由。 在一個大型應用中, 你肯定希望把你的Angular應用、路由、控制器分布到它們各自的模塊中,但是為了完成我們的簡單用例,我們將把它們都放到app.js這個歡樂的大家庭中。 現在我們擁有了一個已經注入了ngAnimate和ui.router的應用。 我們同樣也建立了相應的路由。注意我們是如何為每一個視圖區域定義 url,視圖文件(templateUrl) 和 控制器的。 form 將是我們的主視圖區域。它同樣有一個以 . 分割的子視圖區域 form.profile。這種想法能實現在應用狀態發生變化時(譯者:可能是路由、queryString等),子視圖將會在主視圖區域中顯示出來。(譯者:而且可以作到僅更新子視圖區域變化,記錄子視圖區域狀態)。 我們將在下一節中進行演示。 現在我們需要為form以及它的子視圖區域創建視圖。 讓我們從新建form.html開始。這個文件將會在我們剩下的表單視圖文件中充當模板的作用,正如index.html被用作整個項目的總體模板一樣。我們所要作的是在該文件中包含ui-view,這樣可以使嵌套聲明知道該在何處注入他們的視圖。 <!-- form.html --> <div class="row"> <div class="col-sm-8 col-sm-offset-2"> <div id="form-container"> <div class="page-header text-center"> <h2>Let's Be Friends</h2> <!-- the links to our nested states using relative paths --> <!-- add the active class if the state matches our ui-sref --> <div id="status-buttons" class="text-center"> <a ui-sref-active="active" ui-sref=".profile"><span>1</span> Profile</a> <a ui-sref-active="active" ui-sref=".interests"><span>2</span> Interests</a> <a ui-sref-active="active" ui-sref=".payment"><span>3</span> Payment</a> </div> </div> <!-- use ng-submit to catch the form submission and use our Angular function --> <form id="signup-form" ng-submit="processForm()"> <!-- our nested state views will be injected here --> <div id="form-views" ui-view></div> </form> </div> <!-- show our formData as it is being typed --> <pre> {{ formData }} </pre> </div> </div> 注意我們是如何第二次在項目中使用ui-view的。這就是UI Router偉大的地方:我們可以嵌套聲明和視圖。這能夠在我們開發應用時提供給我們非常多的靈活性。關於UI Router視圖的內容,請參見 官方文檔。 添加基於狀態的激活類 我們希望每一個狀態按鈕能夠在他們被激活時展示。為了達到這個效果,我們將會使用UI Router提供的ui-sref-active。如果ui-sref和當前狀態一致,則會添加我們指定的類。 為了給自己的表單添加驗證,請參見AngularJS表單驗證。 現在,你可能想知道我們的表單究竟看起來是什麼樣子。讓我們打開瀏覽器看一眼。 目前為止,我們並沒有完全按照希望的那樣得到所有的內容,但是這是一系列偉大事情的開端。讓我們繼續前進,添加一點樣式,之後會添加一些嵌入視圖和注釋。 基礎Stylingstyle.css 我們將設計我們的form-container和status-buttons來是我們的表單看起來更好。 /* style.css */ /* BASIC STYLINGS ============================================================================= */ body { padding-top:20px; } /* form styling */ #form-container { background:#2f2f2f; margin-bottom:20px; border-radius:5px; } #form-container .page-header { background:#151515; margin:0; padding:30px; border-top-left-radius:5px; border-top-right-radius:5px; } /* numbered buttons */ #status-buttons { } #status-buttons a { color:#FFF; display:inline-block; font-size:12px; margin-right:10px; text-align:center; text-transform:uppercase; } #status-buttons a:hover { text-decoration:none; } /* we will style the span as the circled number */ #status-buttons span { background:#080808; display:block; height:30px; margin:0 auto 10px; padding-top:5px; width:30px; border-radius:50%; } /* active buttons turn light green-blue*/ #status-buttons a.active span { background:#00BC8C; } 現在我們的按鈕更好看了並且更符合我們想要的了,接下來我們看下嵌套視圖。 嵌套視圖form-profile.html, form-interests.html, form-payment.html 這部分會比較簡單。我們將定義不同的帶有我們需要的輸入框的視圖。並且將他們綁定到formData對象以便我們能看到輸入的數據。 下面是我們用於嵌套視圖的視圖文件: 表單概要視圖 <!-- form-profile.html --> <div class="form-group"> <label for="name">Name</label> <input type="text" class="form-control" name="name" ng-model="formData.name"> </div> <div class="form-group"> <label for="email">Email</label> <input type="text" class="form-control" name="email" ng-model="formData.email"> </div> <div class="form-group row"> <div class="col-xs-6 col-xs-offset-3"> <a ui-sref="form.interests" class="btn btn-block btn-info"> Next Section <span class="glyphicon glyphicon-circle-arrow-right"></span> </a> </div> </div> 表單興趣視圖 <!-- form-interests.html --> <label>What's Your Console of Choice?</label> <div class="form-group"> <div class="radio"> <label> <input type="radio" ng-model="formData.type" value="xbox" checked> I like XBOX </label> </div> <div class="radio"> <label> <input type="radio" ng-model="formData.type" value="ps"> I like PS4 </label> </div> </div> <div class="form-group row"> <div class="col-xs-6 col-xs-offset-3"> <a ui-sref="form.payment" class="btn btn-block btn-info"> Next Section <span class="glyphicon glyphicon-circle-arrow-right"></span> </a> </div> </div> 表單支付視圖 <!-- form-payment.html --> <div class="text-center"> <span class="glyphicon glyphicon-heart"></span> <h3>Thanks For Your Money!</h3> <button type="submit" class="btn btn-danger">Submit</button> </div> 既然我們已經定義了這些視圖,那麼當我們瀏覽表單時,他們就會顯示出來。同樣我們用下一個按鈕和ui-sref來連接每一個新視圖. 當使用ui-sref時,你要連接到你路由中定義的state而不是URL。然後Angular會使用這個來為你構建href。 下面是我們表單目前的每一個頁面。 為了讓我們的頁面不同尋常,讓我們加上動畫效果。 讓我們的表單產生動畫效果 因為在項目開始的時候,我們已經載入了ngAnimate,它已經添加到需要動畫的的類上了。當視圖進入或退出的時候,它將自動添加類ng-enter和ng-leave。 現在我們所有做的就是通過樣式形成我們最終的表單。為了理解Angular動畫,這篇文章是一個很好的起點。 讓我們進去css文件,將動畫,並應用到我們的表單上 /* style.css */ /* ANIMATION STYLINGS ============================================================================= */ #signup-form { position:relative; min-height:300px; overflow:hidden; padding:30px; } #form-views { width:auto; } /* basic styling for entering and leaving */ /* left and right added to ensure full width */ #form-views.ng-enter, #form-views.ng-leave { position:absolute; left:30px; right:30px; transition:0.5s all ease; -moz-transition:0.5s all ease; -webkit-transition:0.5s all ease; } /* enter animation */ #form-views.ng-enter { -webkit-animation:slideInRight 0.5s both ease; -moz-animation:slideInRight 0.5s both ease; animation:slideInRight 0.5s both ease; } /* leave animation */ #form-views.ng-leave { -webkit-animation:slideOutLeft 0.5s both ease; -moz-animation:slideOutLeft 0.5s both ease; animation:slideOutLeft 0.5s both ease; } /* ANIMATIONS ============================================================================= */ /* slide out to the left */ @keyframes slideOutLeft { to { transform: translateX(-200%); } } @-moz-keyframes slideOutLeft { to { -moz-transform: translateX(-200%); } } @-webkit-keyframes slideOutLeft { to { -webkit-transform: translateX(-200%); } } /* slide in from the right */ @keyframes slideInRight { from { transform:translateX(200%); } to { transform: translateX(0); } } @-moz-keyframes slideInRight { from { -moz-transform:translateX(200%); } to { -moz-transform: translateX(0); } } @-webkit-keyframes slideInRight { from { -webkit-transform:translateX(200%); } to { -webkit-transform: translateX(0); } } 首先,確定視圖離開或進去時,表單的樣式,他們是絕對定位的。需要確認當視圖進入的時候一個視圖不會放到另一個視圖的下面。 其次,應用我們的動畫到.ng-enter和.ng-leave類 第三,用@keyframes定義動畫。所有這些部分組合到一起,我們的表單就有了Angular動畫,基於狀態的UI Router和Angular數據綁定。 以上所述是小編給大家分享的AngularJS 使用 UI Router 實現表單向導的相關知識,希望對大家有所幫助。