angularJs案例汇总

---恢复内容开始---

这里我会把学习过程中碰到的demo与大家分享,由浅入深,逐个分析。

Eg1:入门必备

 1 <html ng-app="todoApp">
 2 <head>
 3     <title>TO DO List</title>
 4     <link href="bootstrap.css" rel="stylesheet" />
 5     <link href="bootstrap-theme.css" rel="stylesheet" />
 6     <script src="angular.js"></script>
 7     <script>
 8         //数据模型
 9         var model = {
10             user: "Adam",
11             items: [{ action: "Buy Flowers", done: false },
12                         { action: "Get Shoes", done: false },
13                         { action: "Collect Tickets", done: true },
14                         { action: "Call Joe", done: false }]
15         };
16         //定义全局的module  []表示不引用其他module
17         var todoApp = angular.module("todoApp", []);
18         //module里面可以定义多个controller  拥有各自的$scope
19         todoApp.controller("ToDoCtrl", function ($scope) {
20             $scope.todo = model;
21         });
22 
23     </script>
24 </head>
25 
26 <body ng-controller="ToDoCtrl">
27     <div class="page-header">
28         <h1>
29             {{todo.user}}'s To Do List
30             <span class="label label-default">{{todo.items.length}}</span>
31         </h1>
32     </div>
33     <div class="panel">
34         <div class="input-group">
35             <input class="form-control" />
36             <span class="input-group-btn">
37                 <button class="btn btn-default">Add</button>
38             </span>
39         </div>
40         <table class="table table-striped">
41             <thead>
42                 <tr>
43                     <th>Description</th>
44                     <th>Done</th>
45                 </tr>
46             </thead>
47             <tbody>
48                 <tr ng-repeat="item in todo.items"> //常见指令
49                     <td>{{item.action}}</td>    <td><input type="checkbox" ng-model="item.done" /></td>  //实现双向数据绑定
50                     <td>{{item.done}}</td>
51                 </tr>
52             </tbody>
53         </table>
54     </div>
55 </body>
56 
57 
58 </html>

我们可以看到angularJs很适合和bootstrap一起运用,他并不依赖其他类库。

Eg2:稍微有些复杂,对于刚学的同学

 1   <!DOCTYPE html>
 2 <html ng-app="todoApp">
 3 <head>
 4     <title>TO DO List</title>
 5     <link href="bootstrap.css" rel="stylesheet" />
 6     <link href="bootstrap-theme.css" rel="stylesheet" />
 7     <script src="angular.js"></script>
 8     <script>
 9 
10         var model = {
11             user: "Adam",
12             items: [{ action: "Buy Flowers", done: false },
13                         { action: "Get Shoes", done: false },
14                         { action: "Collect Tickets", done: true },
15                         { action: "Call Joe", done: false }]
16         };
17 
18         var todoApp = angular.module("todoApp", []);
19 
20         todoApp.controller("ToDoCtrl", function ($scope) {
21             $scope.todo = model;
22             //在该scope下定义函数  计算未完成的count
23             $scope.incompleteCount = function () {
24                 var count = 0;
25                 angular.forEach($scope.todo.items, function (item) {  
26                     if (!item.done) { count++ }
27                 });
28                 return count;
29             }
30 
31             $scope.warningLevel = function () {
32                 return $scope.incompleteCount() < 3 ? "label-success" : "label-warning";  //count<3  className="label-success"
33             }
34             //该函数用于添加新事项
35             $scope.addNewItem = function (actionText) {
36                 $scope.todo.items.push({ action: actionText, done: false });
37             }
38         });
39 
40     </script>
41 </head>
42 <body ng-controller="ToDoCtrl">
43     <div class="page-header">
44         <h1>
45             {{todo.user}}'s To Do List
46             <span class="label label-default" ng-class="warningLevel()"  //angularJs指令  用于确定该元素class
47                   ng-hide="incompleteCount() == 0">  //如果为0 则hide
48                 {{incompleteCount()}}
49             </span>
50         </h1>
51     </div>
52     <div class="panel">
53         <div class="input-group">
54             <input class="form-control" ng-model="actionText" />
55             <span class="input-group-btn">
56                 <button class="btn btn-default"
57                         ng-click="addNewItem(actionText)">Add</button>  //add触发添加事件  参数为actionText
58             </span>
59         </div>
60         <table class="table table-striped">
61             <thead>
62                 <tr>
63                     <th>Description</th>
64                     <th>Done</th>
65                 </tr>
66             </thead>
67             <tbody>
68                 <tr ng-repeat="item in todo.items">
69                     <td>{{item.action}}</td>
70                     <td><input type="checkbox" ng-model="item.done" /></td>
71                 </tr>
72             </tbody>
73         </table>
74     </div>
75 </body>
76 </html>

Eg3:经过上面学习,应该摸清门路了,那么下面就很简单了

  1 <!DOCTYPE html>
  2 <html ng-app="todoApp">
  3 <head>
  4     <title>TO DO List</title>
  5     <link href="bootstrap.css" rel="stylesheet" />
  6     <link href="bootstrap-theme.css" rel="stylesheet" />
  7     <script src="angular.js"></script>
  8    
  9     <script>
 10         var model = {
 11             user: "Adam"            
 12         };
 13         
 14         var todoApp = angular.module("todoApp", []);
 15         //这里的$http相当于ajax服务  调用时用run
 16         todoApp.run(function ($http) {
 17             $http.get("todo.json").success(function (data) {
 18                model.items = data;  //从json文件中接收数据到model
 19             });
 20         });
 21         
 22         todoApp.filter("checkedItems", function () { //这里定义了一个过滤器checkedItems 
 23             return function (items, showComplete) {
 24                 var resultArr = [];
 25                 angular.forEach(items, function (item) {
 26 
 27                     if (item.done == false || showComplete == true) {
 28                         resultArr.push(item);  //item是未完成事项 或 showComplete == true时放入
 29                     }
 30                 });
 31                 return resultArr;
 32             }
 33         });
 34 
 35         todoApp.controller("ToDoCtrl", function ($scope) {
 36             $scope.todo = model;
 37 
 38             $scope.incompleteCount = function () {
 39                 var count = 0;
 40                 angular.forEach($scope.todo.items, function (item) {
 41                     if (!item.done) { count++ }
 42                 });
 43                 return count;
 44             }
 45 
 46             $scope.warningLevel = function () {
 47                 return $scope.incompleteCount() < 3 ? "label-success" : "label-warning";
 48             }
 49 
 50             $scope.addNewItem = function(actionText) {
 51                 $scope.todo.items.push({ action: actionText, done: false});
 52             }
 53 
 54         });
 55     </script>
 56    
 57    
 58 </head>
 59 <body ng-controller="ToDoCtrl">
 60     <div class="page-header">
 61         <h1>
 62             {{todo.user}}'s To Do List
 63             <span class="label label-default" ng-class="warningLevel()"
 64                   ng-hide="incompleteCount() == 0">
 65                 {{incompleteCount()}}
 66             </span>
 67         </h1>
 68     </div>
 69     <div class="panel">
 70         <div class="input-group">
 71             <input class="form-control" ng-model="actionText" />
 72             <span class="input-group-btn">
 73                 <button class="btn btn-default"
 74                         ng-click="addNewItem(actionText)">Add</button>
 75             </span>
 76         </div>
 77 
 78         <table class="table table-striped">
 79             <thead>
 80                 <tr>
 81                     <th>Description</th>
 82                     <th>Done</th>
 83                 </tr>
 84             </thead>
 85             <tbody>
 86                 <tr ng-repeat=
 87                         "item in todo.items | checkedItems:showComplete | orderBy:'action'">
 88                     <td>{{item.action}}</td>
 89                     <td><input type="checkbox" ng-model="item.done" /></td>
 90                 </tr>
 91             </tbody>
 92         </table>
 93 
 94         <div class="checkbox-inline">
 95             <label><input type="checkbox" ng_model="showComplete"> Show Complete</label> //这里checkbox控制showcomplete的值
 96         </div>
 97     </div>
 98 
 99 </body>
100 </html>

Eg4:发现js写在html里面不太好,有没有。。。

  1 //productController.js  单独的定义module的js文件
  2 angular.module("sportsStore")
  3     .constant("productListActiveClass", "btn-primary")
  4     .constant("productListPageCount", 3)
  5     .controller("productListCtrl", function ($scope, $filter,
  6         productListActiveClass, productListPageCount) {
  7 
  8         var selectedCategory = null;
  9 
 10         $scope.selectedPage = 1;
 11         $scope.pageSize = productListPageCount;
 12 
 13         $scope.selectCategory = function (newCategory) {
 14             selectedCategory = newCategory;
 15             $scope.selectedPage = 1;
 16         }
 17 
 18         $scope.selectPage = function (newPage) {
 19             $scope.selectedPage = newPage;
 20         }
 21 
 22         $scope.categoryFilterFn = function (product) {
 23             return selectedCategory == null ||
 24                 product.category == selectedCategory;
 25         }
 26 
 27         $scope.getCategoryClass = function (category) {
 28             return selectedCategory == category ? productListActiveClass : "";
 29         }
 30 
 31         $scope.getPageClass = function (page) {
 32             return $scope.selectedPage == page ? productListActiveClass : "";
 33         }
 34     });  ---end 
 35 
 36 //sportsStore.js  注意与上面一样module是sportsStore  controller名字不一样而已
 37 angular.module("sportsStore")
 38 .controller("sportsStoreCtrl", function ($scope) {
 39 
 40     $scope.data = {
 41         products: [
 42             {
 43                 name: "Product #1", description: "A product",
 44                 category: "Category #1", price: 100
 45             },
 46             {
 47                 name: "Product #2", description: "A product",
 48                 category: "Category #1", price: 110
 49             },
 50             {
 51                 name: "Product #3", description: "A product",
 52                 category: "Category #2", price: 210
 53             },
 54             {
 55                 name: "Product #4", description: "A product",
 56                 category: "Category #3", price: 202
 57             }]
 58     };
 59 }); --end
 60 
 61 //这里定义了一个过滤功能的模块 customerFilters  共有3个过滤实现
 62 angular.module("customFilters", [])
 63 .filter("unique", function () {   //这里实现过滤重复属性值的功能
 64     return function (data, propertyName) {
 65         if (angular.isArray(data) && angular.isString(propertyName)) {
 66             var results = [];
 67             var keys = {};
 68             for (var i = 0; i < data.length; i++) {
 69                 var val = data[i][propertyName];
 70                 if (angular.isUndefined(keys[val])) {
 71                     keys[val] = true;
 72                     results.push(val);
 73                 }
 74             }
 75             return results;
 76         } else {
 77             return data;
 78         }
 79     }
 80 })
 81 .filter("range", function ($filter) {  //实现了选择页数功能
 82     return function (data, page, size) {
 83         if (angular.isArray(data) && angular.isNumber(page) && angular.isNumber(size)) {
 84             var start_index = (page - 1) * size;
 85             if (data.length < start_index) {
 86                 return [];
 87             } else {
 88                 return $filter("limitTo")(data.splice(start_index), size);
 89             }
 90         } else {
 91             return data;
 92         }
 93     }
 94 })
 95 .filter("pageCount", function () {  //统计页数
 96     return function (data, size) {
 97         if (angular.isArray(data)) {
 98             var result = [];
 99             for (var i = 0; i < Math.ceil(data.length / size) ; i++) { //这样总能取到真是页数
100                 result.push(i);
101             }
102             return result;
103         } else {
104             return data;
105         }
106     }
107 });  -- end
108 
109 <html ng-app="sportsStore">
110 <head>
111     <title>SportsStore</title>
112     <script>
113         angular.module("sportsStore", ["customFilters"]); //customFilters是依赖模块
114     </script>
115     <script src="controllers/sportsStore.js"></script>
116     <script src="filters/customFilters.js"></script>
117     <script src="controllers/productListControllers.js"></script>
118 </head>
119 <body ng-controller="sportsStoreCtrl">
120     <div class="navbar navbar-inverse">
121         <a class="navbar-brand" href="#">SPORTS STORE</a>
122     </div>
123     <div class="panel panel-default row" ng-controller="productListCtrl">
124         <div class="col-xs-3">
125             <a ng-click="selectCategory()"
126                class="btn btn-block btn-default btn-lg">Home</a>
127             <a ng-repeat="item in data.products | orderBy:'category' | unique:'category'"  //种类不允许重复
128                ng-click="selectCategory(item)" class=" btn btn-block btn-default btn-lg"
129                ng-class="getCategoryClass(item)">
130                 {{item}}
131             </a>
132         </div>
133         <div class="col-xs-8">
134             <div class="well"
135                  ng-repeat="item in data.products | filter:categoryFilterFn | range:selectedPage:pageSize"> //这里比较难理解的是自定义filter和默认filter的区别
136                 <h3>
137                     <strong>{{item.name}}</strong>
138                     <span class="pull-right label label-primary">
139                         {{item.price | currency}}  //currency是angular自带美元过滤器
140                     </span>
141                 </h3>
142                 <span class="lead">{{item.description}}</span>
143             </div>
144             <div class="pull-right btn-group">
145                 <a ng-repeat="page in data.products | filter:categoryFilterFn | pageCount:pageSize" //分页的显示
146                    ng-click="selectPage($index + 1)" class="btn btn-default"
147                    ng-class="getPageClass($index + 1)">  //默认的selectedPage==1  所以看是的时候1高亮显示
148                     {{$index + 1}}
149                 </a>
150             </div>
151         </div>
152 </body>
153 </html>

Eg5:怎么样,看过瘾没?好像这里东西挺多的呀,继续搞起。。。

 1 //cart.js  购物车的js文件
 2 angular.module("cart", [])
 3 .factory("cart", function () {
 4 
 5     var cartData = [];
 6 
 7     return {
 8         //添加物品  要判断是否添加的是相同id的物品
 9         addProduct: function (id, name, price) {
10             var addedToExistingItem = false;
11             for (var i = 0; i < cartData.length; i++) {
12                 if (cartData[i].id == id) {
13                     cartData[i].count++;
14                     addedToExistingItem = true;
15                     break;
16                 }
17             }
18             if (!addedToExistingItem) {
19                 cartData.push({
20                     count: 1, id: id, price: price, name: name
21                 });
22             }
23         },
24         //移除产品
25         removeProduct: function (id) {
26             for (var i = 0; i < cartData.length; i++) {
27                 if (cartData[i].id == id) {
28                     cartData.splice(i, 1);
29                     break;
30                 }
31             }
32         },
33 
34         getProducts: function () {
35             return cartData;
36         }
37     }
38 })
39 .directive("cartSummary", function (cart) {  //这是指令 大家可以看我之前的博客
40     return {
41         restrict: "E",
42         templateUrl: "components/cart/cartSummary.html",  //该网页可用controller下的函数
43         controller: function ($scope) {
44 
45             var cartData = cart.getProducts(); //调用服务
46             //计算总价
47             $scope.total = function () {
48                 var total = 0;
49                 for (var i = 0; i < cartData.length; i++) {
50                     total += (cartData[i].price * cartData[i].count);
51                 }
52                 return total;
53             }
54 
55             $scope.itemCount = function () {
56                 var total = 0;
57                 for (var i = 0; i < cartData.length; i++) {
58                     total += cartData[i].count;
59                 }
60                 return total;
61             }
62         }
63     };
64 });
 1 //cartSummary.html  
 2 <style>
 3     .navbar-right { float: right !important; margin-right: 5px; }
 4     .navbar-text { margin-right: 10px; }
 5 </style>
 6 
 7 <div class="navbar-right">
 8     <div class="navbar-text">
 9         <b>Your cart:</b>
10         {{itemCount()}} item(s),
11         {{total() | currency}}
12     </div>
13     <a href="#/checkout" class="btn btn-default navbar-btn">Checkout</a>
14 </div>
15 
16 //checkoutController.js
17 angular.module("sportsStore")
18 .controller("cartSummaryController", function ($scope, cart) {
19 
20     $scope.cartData = cart.getProducts();
21 
22     $scope.total = function () {
23         var total = 0;
24         for (var i = 0; i < $scope.cartData.length; i++) {
25             total += ($scope.cartData[i].price * $scope.cartData[i].count);
26         }
27         return total;
28     }
29 
30     $scope.remove = function (id) {
31         cart.removeProduct(id);
32     }
33 });

看到这里是不是觉得angularJs有点不可思议。。。下面可以看下由路由控制的单页面应用是如何实现的。

  1 //app.html
  2 <!DOCTYPE html>
  3 <html ng-app="sportsStore">
  4 <head>
  5     <title>SportsStore</title>
  6      <script>
  7         angular.module("sportsStore", ["customFilters", "cart", "ngRoute"]) //引进所依赖的模块 ngRoute是路由
  8         .config(function ($routeProvider) {
  9 
 10             $routeProvider.when("/complete", {
 11                 templateUrl: "/views/thankYou.html"
 12             });
 13 
 14             $routeProvider.when("/placeorder", {
 15                 templateUrl: "/views/placeOrder.html"
 16             });
 17 
 18             $routeProvider.when("/checkout", {
 19                 templateUrl: "/views/checkoutSummary.html"
 20             });
 21 
 22             $routeProvider.when("/products", {
 23                 templateUrl: "/views/productList.html"
 24             });
 25 
 26             $routeProvider.otherwise({  //默认失去产品详细页面
 27                 templateUrl: "/views/productList.html"
 28             });
 29         });
 30     </script>
 31     <script src="controllers/sportsStore.js"></script>
 32     <script src="filters/customFilters.js"></script>
 33     <script src="controllers/productListControllers.js"></script>
 34     <script src="components/cart/cart.js"></script>
 35     <script src="ngmodules/angular-route.js"></script>
 36     <script src="controllers/checkoutControllers.js"></script>
 37 </head>
 38 <body ng-controller="sportsStoreCtrl">
 39     <div class="navbar navbar-inverse">
 40         <a class="navbar-brand" href="#">SPORTS STORE</a>
 41         <cart-summary />
 42     </div>
 43     <div class="alert alert-danger" ng-show="data.error">
 44         Error ({{data.error.status}}). The product data was not loaded.
 45         <a href="/app.html" class="alert-link">Click here to try again</a>
 46     </div>
 47     <ng-view />
 48 </body>
 49 </html>
 50 
 51 //checkoutSummary.html
 52 <h2>Your cart</h2>
 53 
 54 <div ng-controller="cartSummaryController">
 55 
 56     <div class="alert alert-warning" ng-show="cartData.length == 0">
 57         There are no products in your shopping cart.
 58         <a href="#/products" class="alert-link">Click here to return to the catalogue</a> //前往productList页面
 59     </div>
 60 
 61     <div ng-hide="cartData.length == 0">
 62         <table class="table">
 63             <thead>
 64                 <tr>
 65                     <th>Quantity</th>
 66                     <th>Item</th>
 67                     <th class="text-right">Price</th>
 68                     <th class="text-right">Subtotal</th>
 69                 </tr>
 70             </thead>
 71             <tbody>
 72                 <tr ng-repeat="item in cartData">
 73                     <td class="text-center">{{item.count}}</td>
 74                     <td class="text-left">{{item.name}}</td>
 75                     <td class="text-right">{{item.price | currency}}</td>
 76                     <td class="text-right">{{ (item.price * item.count) | currency}}</td>
 77                     <td>
 78                         <button ng-click="remove(item.id)"
 79                                 class="btn btn-sm btn-warning">
 80                             Remove
 81                         </button>
 82                     </td>
 83                 </tr>
 84             </tbody>
 85             <tfoot>
 86                 <tr>
 87                     <td colspan="3" class="text-right">Total:</td>
 88                     <td class="text-right">
 89                         {{total() | currency}}
 90                     </td>
 91                 </tr>
 92             </tfoot>
 93         </table>
 94 
 95         <div class="text-center">
 96             <a class="btn btn-primary" href="#/products">Continue shopping</a>
 97             <a class="btn btn-primary" href="#/placeorder">Place order now</a>
 98         </div>
 99     </div>
100 </div>
101 
102 //productList.html
103 <div class="panel panel-default row" ng-controller="productListCtrl"
104      ng-hide="data.error">
105     <div class="col-xs-3">
106         <a ng-click="selectCategory()"
107            class="btn btn-block btn-default btn-lg">Home</a>
108         <a ng-repeat="item in data.products | orderBy:'category' | unique:'category'"
109            ng-click="selectCategory(item)" class=" btn btn-block btn-default btn-lg"
110            ng-class="getCategoryClass(item)">
111             {{item}}
112         </a>
113     </div>
114     <div class="col-xs-8">
115         <div class="well"
116              ng-repeat="item in data.products | filter:categoryFilterFn | range:selectedPage:pageSize">
117             <h3>
118                 <strong>{{item.name}}</strong>
119                 <span class="pull-right label label-primary">
120                     {{item.price | currency}}
121                 </span>
122             </h3>
123             <button ng-click="addProductToCart(item)"
124                     class="btn btn-success pull-right">
125                 Add to cart
126             </button>
127             <span class="lead">{{item.description}}</span>
128         </div>
129         <div class="pull-right btn-group">
130             <a ng-repeat="page in data.products | filter:categoryFilterFn | pageCount:pageSize"
131                ng-click="selectPage($index + 1)" class="btn btn-default"
132                ng-class="getPageClass($index + 1)">
133                 {{$index + 1}}
134             </a>
135         </div>
136     </div>
137 </div>

这上面主要是把service,directive和路由结合在一起了,如果搞懂了可以自己做一个页面。

还想看吗  最后再来一个登陆验证的吧!!

  1 //adminController.js  控制用户登录
  2 angular.module("sportsStoreAdmin")
  3 .constant("authUrl", "http://localhost:5500/users/login")
  4 .constant("ordersUrl", "http://localhost:5500/orders")
  5 .controller("authCtrl", function ($scope, $http, $location, authUrl) {
  6 
  7     $scope.authenticate = function (user, pass) {  //验证用户名和密码
  8         $http.post(authUrl, {  //发送请求
  9             username: user,
 10             password: pass
 11         }, {
 12             withCredentials: true
 13         }).success(function (data) {
 14             $location.path("/main");
 15         }).error(function (error) {
 16             $scope.authenticationError = error;
 17         });
 18     }
 19 })
 20 .controller("mainCtrl", function ($scope) {
 21 
 22     $scope.screens = ["Products", "Orders"];
 23     $scope.current = $scope.screens[0];
 24 
 25     $scope.setScreen = function (index) {
 26         $scope.current = $scope.screens[index];
 27     };
 28 
 29     $scope.getScreen = function () {
 30         return $scope.current == "Products"
 31             ? "/views/adminProducts.html" : "/views/adminOrders.html";
 32     };
 33 })
 34 .controller("ordersCtrl", function ($scope, $http, ordersUrl) {
 35 
 36     $http.get(ordersUrl, { withCredentials: true })
 37         .success(function (data) {
 38             $scope.orders = data;
 39         })
 40         .error(function (error) {
 41             $scope.error = error;
 42         });
 43 
 44     $scope.selectedOrder;
 45 
 46     $scope.selectOrder = function (order) {
 47         $scope.selectedOrder = order;
 48     };
 49 
 50     $scope.calcTotal = function (order) {
 51         var total = 0;
 52         for (var i = 0; i < order.products.length; i++) {
 53             total +=
 54                 order.products[i].count * order.products[i].price;
 55         }
 56         return total;
 57     }
 58 });
 59 //admin.login.html  登录页面
 60 <div class="well" ng-controller="authCtrl">
 61 
 62     <div class="alert alert-info" ng-hide="authenticationError">
 63         Enter your username and password and click Log In to authenticate
 64     </div>
 65 
 66     <div class="alert alert-danger" ng-show="authenticationError">
 67         Authentication Failed ({{authenticationError.status}}). Try again.
 68     </div>
 69 
 70     <form name="authForm" novalidate>
 71         <div class="form-group">
 72             <label>Username</label>
 73             <input name="username" class="form-control" ng-model="username" required />
 74         </div>
 75         <div class="form-group">
 76             <label>Password</label>
 77             <input name="password" type="password" class="form-control"
 78                    ng-model="password" required />
 79         </div>
 80         <div class="text-center">
 81             <button ng-click="authenticate(username, password)"
 82                     ng-disabled="authForm.$invalid"
 83                     class="btn btn-primary">
 84                 Log In
 85             </button>
 86         </div>
 87     </form>
 88 </div>
 89 
 90 <html ng-app="sportsStoreAdmin">
 91 <head>
 92     <title>Administration</title>
 93     <script src="angular.js"></script>
 94     <script src="ngmodules/angular-route.js"></script>
 95     <script src="ngmodules/angular-resource.js"></script>
 96     <link href="bootstrap.css" rel="stylesheet" />
 97     <link href="bootstrap-theme.css" rel="stylesheet" />
 98     <script>
 99         angular.module("sportsStoreAdmin", ["ngRoute", "ngResource"])
100             .config(function ($routeProvider) {
101 
102                 $routeProvider.when("/login", {
103                     templateUrl: "/views/adminLogin.html"
104                 });
105 
106                 $routeProvider.when("/main", {
107                     templateUrl: "/views/adminMain.html"
108                 });
109 
110                 $routeProvider.otherwise({
111                     redirectTo: "/login"
112                 });
113             });
114     </script>
115     <script src="controllers/adminControllers.js"></script>
116     <script src="controllers/adminProductController.js"></script>
117 </head>
118 <body>
119     <ng-view />
120 </body>
121 </html>

好了,今天就这么多大家好好消化,我也要多看下子。。。

---恢复内容结束---

原文地址:https://www.cnblogs.com/yoissee/p/5936426.html