AngularJS Bootstrap
    AngularJS 的首选样式表是 Twitter Bootstrap ,Twitter Bootstrap 是目前最受欢迎的前端框架

Bootstrap
    你可以在你的 AngularJS 应用中加入 Twitter Bootstrap,你可以在你的 <head>元素中添加如下代码:
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
    以下是一个完整的 HTML 实例, 使用了 AngularJS 指令和 Bootstrap 类。

    <!DOCTYPE html>
    <html>
      <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.min.css">
      <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
      <body ng-app="myApp" ng-controller="userCtrl">

      <div class="container">

      <h3>Users</h3>

      <table class="table table-striped">
      <thead><tr>
      <th>Edit</th>
      <th>First Name</th>
      <th>Last Name</th>
      </tr></thead>
      <tbody><tr ng-repeat="user in users">
      <td>
        <button class="btn" ng-click="editUser(user.id)">
        <span class="glyphicon glyphicon-pencil"></span>&nbsp;&nbsp;Edit
      </button>
      </td>
      <td>{{ user.fName }}</td>
      <td>{{ user.lName }}</td>
      </tr></tbody>
      </table>

      <hr>
        <button class="btn btn-success" ng-click="editUser('new')">
        <span class="glyphicon glyphicon-user"></span> Create New User
      </button>
      <hr>

      <h3 ng-show="edit">Create New User:</h3>
      <h3 ng-hide="edit">Edit User:</h3>

      <form class="form-horizontal">
      <div class="form-group">
      <label class="col-sm-2 control-label">First Name:</label>
      <div class="col-sm-10">
      <input type="text" ng-model="fName" ng-disabled="!edit" placeholder="First Name">
      </div>
      </div>
      <div class="form-group">
          <label class="col-sm-2 control-label">Last Name:</label>
      <div class="col-sm-10">
      <input type="text" ng-model="lName" ng-disabled="!edit" placeholder="Last Name">
      </div>
      </div>
      <div class="form-group">
      <label class="col-sm-2 control-label">Password:</label>
      <div class="col-sm-10">
      <input type="password" ng-model="passw1" placeholder="Password">
      </div>
      </div>
      <div class="form-group">
      <label class="col-sm-2 control-label">Repeat:</label>
      <div class="col-sm-10">
      <input type="password" ng-model="passw2" placeholder="Repeat Password">
      </div>
      </div>
      </form>

      <hr>
      <button class="btn btn-success" ng-disabled="error || incomplete">
      <span class="glyphicon glyphicon-save"></span> Save Changes
    </button>
    </div>

    <script src = "myUsers.js"></script>
    </body>
    </html>

指令解析
      <html ng-app >          为<html> 元素定义一个应用(未命名)
      <body ng-controller>        为<body>元素定义一个控制器
      <tr ng-controller>        循环users 对象数组,每个user 对象放在<tr>元素中
      <button ng-click>        当点击<button>元素时调用函数editUser()
      <h3 ng-show>          如果edit = true 显示<h3>元素
      <h3 ng-hide>          如果edit = true 隐藏<h3>元素
      <input ng-model>        为应用程序绑定<input > 元素
      <button ng-disabled>      如果发生错误或者ncoplete= true 禁用 <button>元素

Bootstrap 类解析
    <div>        container      内容容器
    <table>       table        表格
    <table>       table-striped    带条纹背景的表格
    <button>      btn          按钮
    <btton>      btn-success    成功按钮
    <span>        glyphicon             字形图标
    <span>            glyphicon-pencil   铅笔图标
    <span>        glyphicon-user     用户图标
    <span>        glyphicon-save     保存图标
    <form>        form-horizontal    水平表格
    <div>       form-group         表单组
    <label>        control-label        控制器标签
    <label>        col-sm-2             跨越 2 列
    <div>                 col-sm-10            跨越 10 列

JavaScript 代码
    angular.module('myApp', []).controller('userCtrl', function($scope) {
    $scope.fName = '';
    $scope.lName = '';
    $scope.passw1 = '';
    $scope.passw2 = '';
    $scope.users = [
              {id:1, fName:'Hege', lName:"Pege" },
              {id:2, fName:'Kim', lName:"Pim" },
              {id:3, fName:'Sal', lName:"Smith" },
              {id:4, fName:'Jack', lName:"Jones" },
              {id:5, fName:'John', lName:"Doe" },
              {id:6, fName:'Peter',lName:"Pan" }
          ];
    $scope.edit = true;
    $scope.error = false;
    $scope.incomplete = false;

    $scope.editUser = function(id) {
          if (id == 'new') {
              $scope.edit = true;
              $scope.incomplete = true;
              $scope.fName = '';
              $scope.lName = '';
          } else {
              $scope.edit = false;
              $scope.fName = $scope.users[id-1].fName;
              $scope.lName = $scope.users[id-1].lName;
            }
      };

      $scope.$watch('passw1',function() {$scope.test();});
      $scope.$watch('passw2',function() {$scope.test();});
      $scope.$watch('fName', function() {$scope.test();});
      $scope.$watch('lName', function() {$scope.test();});

      $scope.test = function() {
            if ($scope.passw1 !== $scope.passw2) {
                  $scope.error = true;
            } else {
                  $scope.error = false;
        }
        $scope.incomplete = false;
        if ($scope.edit && (!$scope.fName.length ||
              !$scope.lName.length ||
          !$scope.passw1.length || !$scope.passw2.length)) {
          $scope.incomplete = true;
          }
          };

        });

JavaScript 代码解析
      $scope.fName      模型变量(用户名)
      $scope.IName      模型变量(用户姓)
      $scope.passw1      模型变量(用户密码1)
      $scope.passw2      模型变量(用户密码2)
      $scope.users       模型变量(用户的数组)
      $scope.edit        当用户点击创建用户时设置为true。
      $scope.error        如果passw1 不等于passw2置为true。
      $scope.incomplete      如果每个字段都为空(length = 0)设置为 true
      $scope.editUser      设置模型变量
      $scope.watch        监控模型变量
      $scope.test        验证模型变量的错误和完整性

AngularJS 包含
    在AngularJS 中,你可以在HTML中包含HTML文件。

    在HTML中包含HTML 文件
服务端包含
    大多服务脚本都支持包含文件功能

客户端包含
    通过 JavaScript 有很多种方式可以在 HTML 中包含 HTML 文件。
    通常我们使用 http 请求 (AJAX) 从服务端获取数据,返回的数据我们可以通过 使用 innerHTML 写入到 HTML 元素中。

    <div class="container">
        <div ng-include="'myUsers_List.htm'"></div>
        <div ng-include="'myUsers_Form.htm'"></div>
    </div>

创建 HTML 列表
    <table class="table table-striped">
      <thead><tr>
      <th>Edit</th>
      <th>First Name</th>
      <th>Last Name</th>
      </tr></thead>
      <tbody><tr ng-repeat="user in users">
      <td>
        <button class="btn" ng-click="editUser(user.id)">
        <span class="glyphicon glyphicon-pencil"></span>&nbsp;&nbsp;Edit
      </button>
      </td>
      <td>{{ user.fName }}</td>
      <td>{{ user.lName }}</td>
      </tr></tbody>
    </table>

AngularJS 动画
    AngularJS 提供了动画效果,可以配合css 使用
    AngularJS 使用动画需要引入angular-animate.min.js
    <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular-animate.min.js"></script>
    还需要在应用中使用模型 ngAnimate:
    <body ng-app="ngAnimate">

什么是动画?
    动画是通过改变HTML元素产生的动态变化效果。
    勾选复选框隐藏DIV 实例:
    <body ng-app="ngAnimate">
        隐藏DIV <input type="checkbox" ng-model="myCheck">
        <div ng-hide="myCheck"></div>
    </body>
    应用中动画不宜太多,但合适的使用动画可以增加页面的丰富性,也可以更易让用户理解。

ngAnimate 做了什么?
    ngAnimate模型可以添加或移除calss.
    ngAnimate 模型并不能使用HTML 元素产生动画,但是ngAnimate 会检测事件,类似隐藏显示HTML元素
    如果事件发生ngAnimate 就会使用预定义的class来设置HTML元素的动画。
      AngularJS 添加/移除class指令
        ng-shwo
        ng-hide
        ng-class
        ng-view
        ng-include
        ng-repeat
        ng-if
        ng-switch
    ng-show 和 ng-hide 指令用于添加或移除 ng-hide class 的值。
    其他指令会在进入 DOM 会添加 ng-enter 类,移除 DOM 会添加 ng-leave 属性。
    当 HTML 元素位置改变时,ng-repeat 指令同样可以添加 ng-move 类 。
    此外, 在动画完成后,HTML 元素的类集合将被移除。例如: ng-hide 指令会添加一下类:
    ng-animate
        ng-hide-animate
        ng-hide-add (如果元素将被隐藏)
        ng-hide-remove (如果元素将显示)
        ng-hide-add-active (如果元素将隐藏)
        ng-hide-remove-active (如果元素将显示)

使用CSS动画
      我们可以使用 CSS transition(过渡) 或 CSS 动画让 HTML 元素产生动画效果,

CSS过渡
      CSS 过渡可以让我们平滑的将一个 CSS 属性值修改为另外一个:
        实例:
          <style>
              div {
                  transition:all linear 0.5s;
                  background-color:lightblue;
                  height:100px
              }
            .ng-hide{
                  height:0;
            }
        </style>

css 动画
    CSS 动画允许你平滑的修改 CSS 属性值:
    在 DIV 元素设置了 .ng-hide 类时, myChange 动画将执行,它会平滑的将高度从 100px 变为 0:
    <style>
      @keyframes myChange {
          from {
              height: 100px;
            } to {
              height: 0;
            }
        }
      div {
          height: 100px;
          background-color: lightblue;
      }
      div.ng-hide {
            animation: 0.5s myChange;
      }
    </style>

Angularjs基础(八)的更多相关文章

  1. AngularJS基础入门初探

    一.AngularJS简介 1.1 什么是AngularJS (1)一款非常优秀的前端JS框架,可以方便实现MVC/MVVM模式 (2)由Misko Hevery 等人创建,2009年被Google所 ...

  2. Bootstrap <基础八>图片

    Bootstrap 提供了三个可对图片应用简单样式的 class: .img-rounded:添加 border-radius:6px 来获得图片圆角. .img-circle:添加 border-r ...

  3. Java语言基础(八)

    Java语言基础(八) 一.数学运算  + - * /  % (1)凡是byte  short  char类型都按int类型的计算   看看上面的代码,为什么出错! 我已经将100转成byte类型,( ...

  4. {Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session

    Django基础八之cookie和session 本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx 七 ...

  5. Java基础八--构造函数

    Java基础八--构造函数 一.子父类中构造函数的特点 1.1 为什么在子类构造对象时,发现,访问子类构造函数时,父类也运行了呢? 原因是:在子类的构造函数中第一行有一个默认的隐式语句. super( ...

  6. day 62.3 Django基础八之cookie和session

    Django基础八之cookie和session   本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx ...

  7. day 73 Django基础八之cookie和session

      Django基础八之cookie和session   本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 x ...

  8. Django基础八之认证模块---auth

    Django基础八之认证模块---auth 目录 Django基础八之认证模块---auth 1. auth介绍 2. autho常用操作 2.1 创建用户 2.2 验证用户 2.3 验证用户是否登录 ...

  9. AngularJS基础知识1

    一.angularJS简介 1.什么是 AngularJS? AngularJS 是一个 JavaScript 框架.它是一个以 JavaScript 编写的库.AngularJS是协助搭建单页面工程 ...

随机推荐

  1. Java基础之 学java从宝宝的命令行做起

    JAVA学习笔记 JAVA命令行 在当前文件的命令行下 编译:输入命令javac GetGreeting.java 执行 命令 Java GetGreeting 有package包的程序 1.到文件当 ...

  2. 关于C#的Lock锁思考

    大家都知道多线程并发时候存在一个线程同步的问题,一般使用lock关键字来处理. lock关键字的结果如下: object locker=new object(); lock(locker) { ... ...

  3. 【代码笔记】XML深入学习:DTD约束与DTD语法(1)

    2015-12-27 文件名    student.xml <?xml version="1.0" encoding="GB2312" standalon ...

  4. centOs升级

    因为军佬放弃制作Centos7的网络重装包,又Centos7的安装引导和6有较大区别所以,选择曲线救国(技术不行,只能这样乱搞)前文:Centos6.9一键重装包https://ppx.ink/net ...

  5. Scope_Pre_Post

    @Scope , 设置bean的生命周期,示例:   @Scope(value="prototype")//设置生存范围,一般用 singleton或prototype 14.@P ...

  6. spark学习地址

    http://blog.sina.com.cn/s/blog_64d9a6ef0101ghvs.html http://blog.sina.com.cn/s/blog_49cd89710102v3b1 ...

  7. Siebel 集成中的“发布-订阅”与“阅读”

    将 Siebel 应用程序中存储的数据提供给企业中的其他应用程序时,通常需要遵循以下两种基本模式之一: 发布-订阅 阅读 “发布-订阅”是一种机制,根据该机制,一个系统(发布者)将更改或更新的数据提供 ...

  8. 关于使用metronic时里modal模拟框使用ueditor时不能全屏的情况

    ueditor里有这么断代码, 1.初始显示状态下(非全屏),修改一下代码的z-index UE.Editor.defaultOptions = function(editor){ var _url ...

  9. 安装PYTHON PIL包

    安装pillow而不是PIL pip install pillow 参考: https://github.com/python-pillow/Pillow

  10. Jmeter入门9 __digest函数 jmeter字符串连接与登录串加密应用

     登录请求中加密串是由多个子串连接,再加密之后传输. 参数连接:${var1}${var2}${var3} 加密函数:__digest    (函数助手里如果没有该函数,请下载最新版本的jmeter5 ...