您的位置:首页 > Web前端 > AngularJS

AngularJS Tutorial(16)from w3school

2015-08-04 09:30 661 查看

Bootstrap is a popular style sheet. This chapter demonstrates how to use it with AngularJS.

Bootstrap

To include Bootstrap in your AngularJS application, add the following line to the head of your document:

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

If you want to study Bootstrap, visit our
Bootstrap Tutorial.

Below is a complete HTML example, with all AngularJS directives and Bootstrap classes explained.

HTML Code

<!DOCTYPE
html>

<html>

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

<script
src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/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>  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>

Try it Yourself »

Directives (Used Above) Explained

AngularJS DirectiveDescription
<body ng-appDefines an application for the <body> element
<body ng-controllerDefines a controller for the <body> element
<tr ng-repeatRepeats the <tr> element for each user in users
<button ng-clickInvoke the function editUser() when the <button> element is clicked
<h3 ng-showShow the <h3>s element if edit = true
<h3 ng-hideHide the <h3> element if edit = true
<input ng-modelBind the <input> element to the application
<button ng-disabledDisables the <button> element if error or incomplete = true

Bootstrap Classes Explained

ElementBootstrap ClassDefines
<div>containerA content container
<table>tableA table
<table>table-stripedA striped table
<button>btnA button
<button>btn-successA success button
<span>glyphiconA glyph icon
<span>glyphicon-pencilA pencil icon
<span>glyphicon-userA user icon
<span>glyphicon-saveA save icon
<form>form-horizontalA horizontal form
<div>form-groupA form group
<label>control-labelA control label
<label>col-sm-2A 2 columns span
<div>col-sm-10A 10 columns span

JavaScript Code

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 Code Explained

Scope PropertiesUsed for
$scope.fNameModel variable (user first name)
$scope.lNameModel variable (user last name)
$scope.passw1Model variable (user password 1)
$scope.passw2Model variable (user password 2)
$scope.usersModel variable (array of users)
$scope.editSet to true when user clicks on create user.
$scope.errorSet to true if passw1 not equal passw2
$scope.incompleteSet to true if any field is empty (length = 0)
$scope.editUserSets model variables
$scope.watchWatches model variables
$scope.testTests model variables for errors and incompleteness
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: