AngularJS 引導程式
AngularJS 的首選樣式表是 Twitter Bootstrap, Twitter Bootstrap 是目前最受歡迎的前端框架。
查看 Bootstrap教學。
Bootstrap
你可以加入你的AngularJS 應用程式中Twitter Bootstrap,你可以在你的<head>元素中加入如下程式碼:
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
如果網站在國內,建議使用百度靜態資源庫的Bootstrap,程式碼如下:
<link rel="stylesheet" href="//apps.bdimg.com/libs/bootstrap/3.3.4/css /bootstrap.min.css">
以下是一個完整的HTML 實例, 使用了AngularJS 指令和Bootstrap 類別。
HTML 程式碼
實例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="//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> </head> <body ng-app="myApp" ng-controller="userCtrl"> <div class="container"> <h3>Users</h3> <table class="table table-striped"> <thead> <tr> <th>编辑</th> <th>名</th> <th>姓</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>编辑 </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>创建新用户 </button> <hr> <h3 ng-show="edit">创建新用户:</h3> <h3 ng-hide="edit">编辑用户:</h3> <form class="form-horizontal"> <div class="form-group"> <label class="col-sm-2 control-label">名:</label> <div class="col-sm-10"> <input type="text" ng-model="fName" ng-disabled="!edit" placeholder="名"> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label">姓:</label> <div class="col-sm-10"> <input type="text" ng-model="lName" ng-disabled="!edit" placeholder="姓"> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label">密码:</label> <div class="col-sm-10"> <input type="password" ng-model="passw1" placeholder="密码"> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label">重复密码:</label> <div class="col-sm-10"> <input type="password" ng-model="passw2" placeholder="重复密码"> </div> </div> </form> <hr> <button class="btn btn-success" ng-disabled="error || incomplete"> <span class="glyphicon glyphicon-save"></span>修改 </button> </div> <script src="myUsers.js"></script> </body> </html>
執行實例»
點擊"運行實例" 按鈕查看線上實例
指令解析
AngularJS 指令 | 描述 |
---|---|
<html ng-app | 為<html> 元素定義一個應用(未命名) |
<body ng-controller | ##為<body> 元素定義一個控制器|
#循環users 物件數組,每個user 物件放在<tr> 元素中。 | |
當點擊<button> 元素時呼叫函數editUser() | |
如果edit = true 顯示<h3> 元素 | |
#如果edit = true 隱藏<h3> 元素 | |
為應用程式綁定<input> 元素 | |
Bootstrap 類別解析
#元素 | Bootstrap 類別 | |
---|---|---|
container | 內容容器 | |
#表格 | <table> | |
有條紋背景的表格 | <button> | |
##<button> | ||
成功按鈕 | <span> | |
字形圖示 | <span> | |
鉛筆圖示 | #<span> | |
#使用者圖標 | <span> | |
儲存圖示 | <form> | |
水平表格 | #<div> |
##JavaScript程式碼
#myUsers.jsangular.module(
'myApp', []).controller('userCtrl', function($scope) {$scope.fName
=
'';$scope.lName =
'';$scope.passw1 =
'';$scope.密碼2 =
'';# $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 :"瓊斯" },{id:
5, fName:'John', lName:"Doe" } ,{id:
6, fName:'Peter',lName:"Pan" }];
$範圍。編輯=
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;
}
};
# });
'';$scope.lName =
'';$scope.passw1 =
'';$scope.密碼2 =
'';# $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 :"瓊斯" },{id:
5, fName:'John', lName:"Doe" } ,{id:
6, fName:'Peter',lName:"Pan" }];
$範圍。編輯=
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 屬性 | #使用 |
---|---|
$scope.fName | 模型變數(使用者名稱) |
#$scope.lName | 模型變數(使用者姓) |
$scope.passw1 | 模型變數(使用者密碼1) |
$scope.passw2 | #模型變數(使用者密碼2) |
$scope.users | 模型變數(使用者的陣列) |
$scope.edit | 當使用者點擊建立使用者時設定為true。 |
$scope.error | 如果passw1 不等於passw2 設定為true |
$scope.incomplete | 如果每個欄位都為空(length = 0)設為true |
$scope.editUser | 設定模型變數 |