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. 动作方法中 参数,Json

    一.方法中可以出现的参数类 1.HttpServletRequest 2.HttpServletResponse 3.HttpSession 4.Model 二.返回接收json数据 1. 接收,返回 ...

  2. MVC3.0与MVC2.0的区别

    昨天面试时第一回用MVC2.0做了一个简单的增删改查功能的测试.想一下用了一年多的MVC3.0,对这两个版本不同之处做以下几点总结: 最明显的是MVC3.0较MVC2.0而言,多了Razor视图: 1 ...

  3. 对象大小对比之Comparable与Comparator

    一 概述 1.Comparable与Comparator使用背景 数值型数据(byte int short long float double)天生可对比大小,可排序,String实现了Compara ...

  4. CSS快速入门

    一.概述 层叠样式表;可以对HTML的元素,进行控制,使HTML的元素展现的效果和位置更好; 二.基本语法 css规则由两个部分构成:选择器和语句 语句规则: 1.css选择器的名称区分大小写;属性名 ...

  5. CSS中font-family:中文字体对应的英文名称

    中文字体 对应英文字体 宋体 SimSun 黑体 SimHei 微软雅黑 Microsoft YaHei 微软正黑体 Microsoft JhengHei 新宋体 NSimSun 新细明体 PMing ...

  6. AMP+EPP3.0的开发环境配置

    经过摸索,总结出下列Apache.MySQL.PHP.EPP.ZendDebugger的开发环境配置方法: 版本: Apache: Apache-httpd-2.2.25-win32-x86-no_s ...

  7. keras 保存模型

    转自:https://blog.csdn.net/u010159842/article/details/54407745,感谢分享! 我们不推荐使用pickle或cPickle来保存Keras模型 你 ...

  8. 爬虫入门之urllib库(一)

    1 爬虫概述 (1)互联网爬虫 一个程序,根据Url进行爬取网页,获取有用信息 (2)核心任务 爬取网页 解析数据 难点 :爬虫和反爬虫之间的博弈 (3)爬虫语言 php 多进程和多线程支持不好 ja ...

  9. 【java开发系列】—— 深克隆和浅克隆

    Java支持我们对一个对象进行克隆,通常用在装饰模式和原型模式中.那么什么是深克隆,什么是浅克隆呢. [浅克隆],通常只是对克隆的实例进行复制,但里面的其他子对象,都是共用的. [深克隆],克隆的时候 ...

  10. JS支持可变参数(任意多个)

    <script type="text/javascript"> function abc(){ //js中有个变量arguments,可以访问所有传入的值 for(va ...