极客学院#9:AngularJS

前端之家收集整理的这篇文章主要介绍了极客学院#9:AngularJS前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

AngularJS 简介

AngularJS优点:

  • 利用 依赖注入双向绑定 两个特性,不用编写大量代码来实现复杂功能

  • 不用像jQuery操作大量DOM代码,只需要改变数据模型,极大地提高开发效率

  1. <!DOCTYPE html>
  2. <html ng-app="">
  3. <head lang="en">
  4. <Meta charset="UTF-8">
  5. <link rel="stylesheet" href="css/foundation.min.css"/>
  6. <title></title>
  7. </head>
  8. <body style="padding:10px;">
  9. <input type="text" ng-model="data.msg"/>
  10. <div ng-show="1==1" class="{{data.msg}}">我是一个{{data.msg}}</div>
  11. </body>
  12. <script src="js/angular.min.js"></script>
  13. </html>

2.开发和调试工具的使用

3.第一个 AngularJS Web 应用

  1. <!DOCTYPE html>
  2. <html lang="en" ng-app = "todoList">
  3. <head>
  4. <Meta charset="UTF-8">
  5. <title>todoList</title>
  6. <link rel = "stylesheet" type="text/css" href="css/bootstrap.min.css">
  7. </head>
  8. <body style="padding: 10px;" ng-controller="TaskCtrl">
  9. <div class="input-group">
  10. <input type="text" class="form-control" ng-model="task">
  11. <span class="input-group-btn">
  12. <button class = "btn btn-default" ng-click="add()">提交</button>
  13. </span>
  14. </div>
  15. <h4 ng-if="tasks.length>0">任务列表</h4>
  16. <ul class = "list-group-item">
  17. <li ng-repeat="item in tasks track by $index" class="list-group-item">{{item}}
  18. <a ng-click = "tasks.splice($index,1)">删除</a>
  19. </li>
  20. </ul>
  21.  
  22. </body>
  23. <script src="js/angular.min.js"></script>
  24. <script type="text/javascript">
  25. angular.module('todoList',[])
  26. .controller('TaskCtrl',function($scope) {
  27. $scope.task = "";
  28. $scope.tasks = [];
  29. $scope.add = function () {
  30. $scope.tasks.push($scope.task);
  31. }
  32. })
  33. </script>
  34. </html>

2.AngularJS进阶

2.1 AngularJS前端MVC的设计与搭建

MVC模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

2.2 Binding 指令实现双向数据绑定

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <Meta charset="UTF-8">
  5. <title>AngularJS进阶</title>
  6. </head>
  7. <body style="padding: 10px;" ng-app="">
  8. <div>
  9. <h1>{{2+2}}</h1>
  10. <input type="text" ng-model="uname">
  11. <h1 ng-bind="uname">{{uname}}</h1>
  12. <h1 ng-clock class="ng-clock">{{uname}}</h1>
  13. <h1>{{uname}}</h1>
  14. <div class="{{uname}}">{{'用户名:'+uname}}</div>
  15. </div>
  16. </body>
  17. <script src="js/angular.min.js"></script>
  18. </html>

ng-bind:https://docs.angularjs.org/ap...

(bind 绑定)

2.3 Controllers 的使用

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <Meta charset="UTF-8">
  5. <title>AngularJS 进阶</title>
  6. </head>
  7. <body style="padding: 10px" ng-app="app">
  8. <div ng-controller="FirstCtrl">
  9. <input type="text" ng-model="msg">
  10. <h1 ng-bind="msg"></h1>
  11. </div>
  12. <div ng-controller="NextCtrl">
  13. <input type="text" ng-model="msg">
  14. <h1>{{msg}}</h1>
  15. </div>
  16. </body>
  17. <script src="js/angular.min.js"></script>
  18. <script src="js/myctrl.js"></script>
  19. </html>

2.4 在$scope中变量和方法的使用

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <Meta charset="UTF-8">
  5. <title>AngularJS进阶</title>
  6. <link rel = "stylesheet" type="text/css" href="css/foundation.css">
  7. </head>
  8. <body style="padding: 10px" ng-app="app">
  9. <div ng-controller="MyCtrl">
  10. <input type="text" ng-model="user.uname">
  11. <input type="text" ng-model="user.pwd">
  12. <!--<h1>{{reverse()}}</h1>-->
  13. <div class="button" ng-click="login()">登录</div>
  14. <div ng-show='errormsg.length>0' class="alert-Box">{{errormsg}}</div>
  15. </div>
  16. </body>
  17. <script src="js/angular.min.js"></script>
  18. <script src="js/myctrl.js"></script>
  19. </html>
  1. angular.module('app',[])
  2. .controller('FirstCtrl',function($scope){
  3. $scope.msg="hello angular";
  4. })
  5.  
  6. .controller('NextCtrl',function($scope) {
  7. $scope.msg="hello angular";
  8. })
  9.  
  10. .controller('MyCtrl',function($scope) {
  11. $scope.msg='ddd';
  12.  
  13. $scope.errormsg='';
  14.  
  15. $scope.reverse=function () {
  16. return $scope.msg.split("").reverse().join("");
  17. }
  18.  
  19. $scope.login=function () {
  20. if($scope.user.uname=="admin" && $scope.user.pwd=="123"){
  21. alert("登陆成功");
  22. }
  23. else{
  24. $scope.errormsg="用户名或密码错误"
  25. }
  26. }
  27. })

3. AngularJS进阶-Services与指令的运用

3.1 自定义Sevices服务

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <Meta charset="UTF-8">
  5. <title>AngularJS 进阶</title>
  6. <link rel="stylesheet" href="css/foundation.css">
  7. </head>
  8. <body style="padding: 10px;" ng-app="app">
  9. <div ng-controller="Myctrl">
  10. <h1>{{msg}}</h1>
  11. <h1>{{realname}}</h1>
  12. <h1>{{http}}</h1>
  13. <h2>{{data.msg}}</h2>
  14. <h2>{{uname}}</h2>
  15. </div>
  16. <script src="js/angular.min.js"></script>
  17. <script src="js/app.js"></script>
  18. </body>
  19. </html>
  1. angular.module('app',[])
  2. .value('realname','zhaoliu') // 是可以改变值的
  3. .constant('http','www.baidu.com')
  4. .factory('Data',function () {
  5. return{
  6. msg: '你好啊',setMsg:function () {
  7. this.msg="我不好";
  8. }
  9. }
  10. })
  11. .service('User',function () {
  12. this.firstname="上官";
  13. this.lastname="飞燕";
  14. this.getName=function () {
  15. return this.firstname+this.lastname;
  16. }
  17. })
  18.  
  19. .controller('Myctrl',function ($scope,realname,http,Data,User) {
  20. $scope.msg="你好";
  21. $scope.realname=realname;
  22. $scope.http=http;
  23. $scope.data=Data;
  24. Data.setMsg();
  25. $scope.uname=User.getName();
  26. });

3.2 Services的应用

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <Meta charset="UTF-8">
  5. <title>AngularJS 进阶</title>
  6. </head>
  7. <body style="padding:10px;" ng-app="app">
  8. <div ng-controller="Fctrl">
  9. <input type="text" ng-model="data.msg">
  10. <h2>{{data.msg}}</h2>
  11. </div>
  12. <div ng-controller="Sctrl">
  13. <input type="text" ng-model="data.msg">
  14. <h2>{{data.msg}}</h2>
  15. </div>
  16. </body>
  17. <script src="js/angular.min.js"></script>
  18. <script src="js/app.js"></script>
  19. </html>
  1. angular.module('app',[])
  2. .factory('Data',function () {
  3. return {
  4. msg:'我来自factory';
  5. shopcart:['1','2']
  6. }
  7. }) // 公共容器
  8.  
  9. .controller('Fctrl',Data) { //下单ctrl
  10. $scope.data=Data
  11. })
  12.  
  13. .controller('Sctrl',Data) { // 购物车
  14. $scope.data=Data
  15. })

3.3 常用指令的使用

ng-if会把元素从dom中移除,ng-show/hide不会。

  1. // ng-bind,{{}},ng-model,ng-show/hide,ng-if
  2. // ng-checked,ng-src,ng-href,ng-class,ng-selected,ng-submit,ng-disabled
  3.  
  4. angular.module('app',[])
  5. .controller('UserCtrl',function ($scope) {
  6. $scope.user={
  7. isShowImg:true,showicon: true,icon: 'image/logo.jpg',uname: '',pwd: '',zw: '1',sex: '0',aihao: [1]
  8. };
  9.  
  10. $scope.isChecked=function (n) {
  11. var isok = false;
  12. for(var i = 0;i< $scope.user.aihao.lrngth;i++){
  13. if(n == $scope.user.aihao[i]){
  14. isok=true;
  15. break;
  16. }
  17. }
  18. return isok;
  19. }
  20.  
  21. $scope.register=function (u) {
  22. console.log(u);
  23. }
  24. })

3.4 常用指令ng-repeat的使用

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <Meta charset="UTF-8">
  5. <title>AngualrJS</title>
  6. <link rel = "stylesheet" type="text/css" href="css/foundation.min.css">
  7. </head>
  8. <body ng-app="app" ng-controller="AddressCtrl">
  9. <div style="padding:10px;font-weight:bold">地址管理</div>
  10. <ul class="ui-list ui-list-link ui-list-text ul-list-active ui-border-tb">
  11. <li ng-repeat="a in list" class="ui-border-t">
  12. <h4>{{$index + 1 + '.' + a.address + $first + ' ' + $last}}</h4>
  13.  
  14. </li>
  15. </ul>
  16. <br>
  17. <ul>
  18. <li ng-repeat="a in list" class="ui-border-t">
  19. <h4 ng-if="!$last">{{$index+1+'.'+a.address}}</h4>
  20. </li>
  21. </ul>
  22. <br>
  23. <ul>
  24. <li ng-repeat="a in list" class="ui-border-t" ng-if="!$last">
  25. <h4>{{$index + 1 + '.' + a.address}}</h4>
  26. </li>
  27. </ul>
  28. <br>
  29. <ul class="ui-list ui-list-link ui-list-text ul-list-active ui-border-tb">
  30. <li ng-repeat="a in list" ng-class="{'selected':$first}">
  31. <h4>{{$index + 1 + '.' + a.address}}</h4>
  32.  
  33. </li>
  34. </ul>
  35. </body>
  36. <script src="js/angular.min.js"></script>
  37. <script src="js/app.js"></script>
  38. </html>
  1. angular.module('app',[])
  2. .controller('AddressCtrl',function ($scope) {
  3. $scope.list = [
  4. {id:1,address:'莲湖小区14栋2层'},{id:2,address:'建设小区14栋2层'},{id:3,address:'兴化路89号'},{id:4,address:'北京鸟巢好远的地方'}
  5. ];
  6. })

4.AngularJS内置服务$http的使用

4.1 使用$http查询MysqL数据

  1. angular.module('app',[])
  2. .config(function ($httpProvider) {
  3. })
  4. .controller('MyCtrl',$http) {
  5. $http.get('http://127.0.0.0.1:80/user/getUsers')
  6. .success(function (resp) {
  7. console.log(resp);
  8. })
  9. })

4.2 $http实现对数据的增删改

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <Meta charset="UTF-8">
  5. <title>AngularJS 进阶$http</title>
  6. <link rel="stylesheet" href="css/foundation.min.css">
  7. <style type="text/css">
  8. html,body{font-size: 14px;}
  9. </style>
  10. </head>
  11. <body style="padding: 10px;" ng-app="app">
  12. <div ng-controller="Myctrl"></div>
  13. <input type="text" ng-model="id">
  14. <input type="text" ng-model="name">
  15. <button class="button" ng-click="adduser()">添加</button>
  16. <button class="button" ng-click="deluser()">删除</button>
  17. </body>
  18. <script src="js/angular.min.js"></script>
  19. <script src="js/app.js"></script>
  20. </html>
  1. angular.module('app',$http) {
  2. $scope.id = "";
  3. $scope.name="";
  4. $scope.adduser = function(){
  5. $http.get('http://127.0.0.0.1:80/user/getUsers',{id:$scope.id,name:$scope.name})
  6. .success(function (resp) {
  7. if (resp.success) {
  8. alert("添加成功");
  9. }
  10. })
  11. }
  12. $scope.deluser=function () {
  13. $http.post('http://127.0.0.1:80/user/delUser',{id:$scope.id})
  14. .success(function () {
  15. if(resp.success){
  16. alert('删除成功');
  17. }
  18. })
  19. }
  20. })
  1. // UserController.java
  2.  
  3. import java.util.List;
  4. import com.jfinal.core.Controller;
  5. import com.model.User;
  6.  
  7. public class UserController extends Controller{
  8. public void getUser(){
  9. List<User> Users = User.dao.find("select * from t_user");
  10. renderJson(users);
  11. }
  12.  
  13. public void addusers(){
  14. String name = getPara("name");
  15. User user = new User();
  16. boolean isok = user.set("name",name).save();
  17. renderJson("success",isok);
  18. }
  19.  
  20. public void delUser(){
  21. String id = getPara("id");
  22. boolean isok = User.dao.deleteById(id);
  23. renderJson("success",isok);
  24. }
  25. }

4.3 用户角色权限实例

6.AngularJS之移动APP开发

6.1 Ionic简介

英文文档:http://ionicframework.com/docs/

中文网站 http://www.ionic.wang/

6.2 Cordova简介

https://cordova.apache.org/
http://ngcordova.com/

6.3 开发环境的搭建

http://ionicons.com/

浏览器跨域 http://www.cnblogs.com/rainma...

6.4 联系人APP的开发

猜你在找的Angularjs相关文章