Bootstrap是一套非常流行的样式表框架,本章用以演示如何在AngularJS中使用它。
Bootstrap
为了在AngularJS application中使用Bootstrap,你需要将下面这行代码加入到页面的head部分(或者去Bootstrap官网下载包然后引用到页面上):
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
查看Bootstrap中文官网以了解更多有关http://www.bootcss.com/
下面是一个完整的HTML示例,并附有AngularJS指令和Bootstrap类的说明。
HTML代码
<!DOCTYPE html> htmlscript src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></scriptbody ng-app="myApp" ng-controller="userCtrl"> div class="container"h3>Users</table ="table table-striped"> thead><tr> th>Edit>First Name>Last Nametbodytr ng-repeat="user in users"td> button ="btn" ng-click="editUser(user.id)"span ="glyphicon glyphicon-pencil"span> Edit button>{{ user.fName }}>{{ user.lName }}tablehr="btn btn-success"="editUser('new')"="glyphicon glyphicon-user"> Create New User h3 ng-show="edit">Create New User:ng-hide>Edit User:form ="form-horizontal"="form-group"label ="col-sm-2 control-label">First Name:label="col-sm-10"input type="text" ng-model="fName" ng-disabled="!edit" placeholder="First Name"div> >Last Name:="lName"="Last Name">Password:="password"="passw1"="Password">Repeat:="passw2"="Repeat Password"form="error || incomplete"="glyphicon glyphicon-save"> Save Changes src = "myUsers.js"body>
上例中出现的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>标签。 |
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。 |
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',255); line-height:1.5!important">function() {$scope.test();}); $scope.$watch('passw2',255); line-height:1.5!important">function() {$scope.test();}); $scope.$watch('fName',255); line-height:1.5!important">function() {$scope.test();}); $scope.$watch('lName',255); line-height:1.5!important">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; } }; });