快捷搜索:

AngularJS飞快入门指南16,AngularJS火速入门指南17

作者: w88官方网站手机版  发布:2019-06-29

  Bootstrap是一套非常流行的样式表框架,本章用以演示如何在AngularJS中使用它。

  使用AngularJS,你可以在HTML中包含其它的HTML文件。



Bootstrap

  为了在AngularJS application中使用Bootstrap,你需要将下面这行代码加入到页面的head部分(或者去Bootstrap官网下载包然后引用到页面上):

<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">

  查看Bootstrap中文官网以了解更多有关

  下面是一个完整的HTML示例,并附有AngularJS指令和Bootstrap类的说明。


在HTML中包含其它HTML文件?

  当前的HTML文档还不支持该功能。不过W3C建议w88官方网站手机版,在后续的HTML版本中增加HTML imports功能,以支持在HTML中包含其它的HTML文件。

<link rel="import" href="/path/navigation.html">

HTML代码

<!DOCTYPE html>  <html>  <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">  <script src="http://www.gg37a9w.cn/uploads/allimg/190629/0SI53R7-0.jpg"></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)">        &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')">     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">     Save Changes  </button>  </div>    <script src = "myUsers.js"></script>  </body>  </html>

运行


在服务端包含文件

  大部分的web服务器都支持服务端包含文件(Server Side Includes)。通过使用SSI,你可以在页面被发送到客户端浏览器之前将HTML文件包含到一段HTML文档中。例如下面的这行PHP代码:

<?php require("navigation.php"); ?>

上例中出现的AngularJS指令解释

AngularJS指令 描述
<body ng-app 将<body>元素定义为AngularJS application的根元素。
<body ng-controller 在<body>元素中指定一个控制器。
<tr ng-repeat 对users对象的每一个子项都创建一个<tr>元素。
<button ng-click 当<button>元素被点击时,调用editUser()函数。
<h3 ng-show 当edit = true时显示<h3>元素。
<h3 ng-hide 当edit = true时隐藏<h3>元素。
<input ng-model 将<input>标签绑定到application。
<button ng-disabled 当出现错误或者incomplete = true时禁用<button>标签。

在客户端包含文件

  通过JavaScript,我们可以有许多的方法将HTML文件加入到HTML文档中。

  最通用的做法莫过于使用Ajax,即通过异步http请求从服务端获取数据,然后动态将内容以innerHTML的形式输出到HTML元素中。


Bootstrap类解释

元素 Bootstrap类 定义
<div> container 定义内容的容器。
<table> table 定义一个表格。
<table> table-striped 定义一个带有striped样式的表格,即奇数行和偶数行的背景色不同。
<button> btn 定义一个按钮。
<button> btn-success 定义一个带有success样式的按钮。
<span> glyphicon 定义一个glyph样式的图标。
<span> glyphicon-pencil 定义一个pencil样式的图标。
<span> glyphicon-user 定义一个user样式的图标。
<span> glyphicon-save 定义一个save样式的图标。
<form> form-horizontal 定义一个horizontal样式的表单。
<div> form-group 定义一组控件。
<label> control-label 定义一个label控件。
<label> col-sm-2 定义一个具有两列的span。
<div> col-sm-10 定义一个具有10列的span。

在AngularJS中包含文件

  在AngularJS中,你可以使用ng-include指令将HTML文件加入到HTML文档中:

<body>

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

</body>

  下面是完成上述页面的三个步骤。


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;    }  };    });

第一步:创建myUsers_List.htm文件

<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)">
        &nbsp;&nbsp;Edit
      </button>
    </td>
    <td>{{ user.fName }}</td>
    <td>{{ user.lName }}</td>
  </tr></tbody>
</table>

JavaScript代码解释

Scope对象的属性 作用
$scope.fName 模型变量(用户first name)。
$scope.lName 模型变量(用户last name)。
$scope.passw1 模型变量(用户password 1)。
$scope.passw2 模型变量(用户password 2)。
$scope.users 模型变量(用户对象的数组)。
$scope.edit 当点击按钮创建一个用户时将该变量设置为true。
$scope.error 当passw1不等于passw2时值为true。
$scope.incomplete 当field中的内容为空时(即length = 0)值为true。
$scope.editUser 修改模型数据。
$scope.watch 监视模型数据(例如判断passw1是否等于passw2)。
$scope.test 进行数据验证,然后设置$scope.error和$scope.incomplete的值。

上一章 - AngularJS快速入门指南15:API

下一章 - AngularJS快速入门指南17:Includes

 


第二步:创建myUsers_Form.htm文件

<button class="btn btn-success" ng-click="editUser('new')">
   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">
   Save Changes
</button>

第三步:创建主页面文件

<!DOCTYPE html>
<html ng-app="">
<link rel="stylesheet" href = "http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<script src= "http://www.gg37a9w.cn/uploads/allimg/190629/0SI53R7-0.jpg"></script>
<body ng-controller="userCtrl">

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

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

</body>
</html>

上一章 - AngularJS快速入门指南16:Bootstrap

下一章 - AngularJS快速入门指南18:Application

本文由www.w88985.com发布于w88官方网站手机版,转载请注明出处:AngularJS飞快入门指南16,AngularJS火速入门指南17

关键词: www.w88985.c