AngularJS Bootstrap


La feuille de style préférée d'AngularJS est Twitter Bootstrap. Twitter Bootstrap est actuellement le framework front-end le plus populaire.

Voir le tutoriel Bootstrap。


Bootstrap

Vous pouvez ajouter Twitter Bootstrap à votre application AngularJS. Vous pouvez ajouter le code suivant dans votre élément <head> :

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

Si le site est en Chine, il est recommandé d'utiliser le Bootstrap de la bibliothèque de ressources statiques de Baidu. Le code est le suivant :

<link rel="stylesheet" href="//apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.min.css">

Voici un exemple HTML complet qui utilise les directives AngularJS et les classes Bootstrap.


Code HTML

<!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>Utilisateurs</h3>

<table class="table table-striped">
  <thead><tr>
    <th>Modifier</th>
    <th>Prénom</th>
    <th>Nom</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;Modifier
      </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> Créer un nouvel utilisateur
</button>
<hr>

<h3 ng-show="edit">Créer un nouvel utilisateur :</h3>
<h3 ng-hide="edit">Modifier l'utilisateur :</h3>

<form class="form-horizontal">
<div class="form-group">
  <label class="col-sm-2 control-label">Prénom :</label>
  <div class="col-sm-10">
    <input type="text" ng-model="fName" ng-disabled="!edit" placeholder="Prénom">
  </div>
</div>
<div class="form-group">
  <label class="col-sm-2 control-label">Nom :</label>
  <div class="col-sm-10">
    <input type="text" ng-model="lName" ng-disabled="!edit" placeholder="Nom">
  </div>
</div>
<div class="form-group">
  <label class="col-sm-2 control-label">Mot de passe :</label>
  <div class="col-sm-10">
    <input type="password" ng-model="passw1" placeholder="Mot de passe">
  </div>
</div>
<div class="form-group">
  <label class="col-sm-2 control-label">Répéter :</label⟧>
  <div class="col-sm-10">
    <type= type="password" ng-model="passw2" placeholder="Répéter le mot de passe">
  </div>
</div>
</form>

<hr>
<button class="btn btn-success" ng-disabled="error || incomplete">
  <span class="glyphicon glyphicon-save"></span> Enregistrer les modifications
</button>
</div>

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

Essayez-le »


Explication de la directive

Directives AngularJS Description
<html ng-app Définir une application (non nommée) pour l'élément <html>
<body ng-controller Définir un contrôleur pour l'élément <body>
<tr ng-repeat Parcourir le tableau d’objets users, en plaçant chaque objet user dans un élément <tr>.
<button ng-click Appeler la fonction editUser() lorsque l’élément <button> est cliqué
<h3 ng-show Si edit = true, afficher l’élément <h3>
<h3 ng-hide Si edit = true, masquer l’élément <h3>
<input ng-model Lier l’élément <input> à l’application
<button ng-disabled Si une erreur se produit ou si incomplete = true, désactiver l’élément <button>


Explication de la classe Bootstrap

Élément Classes Bootstrap Définition
<div> container Conteneur de contenu
<table> table Tableau
<table> table-striped Tableau avec fond rayé
<button> btn Bouton
<button> btn-success Bouton de succès
<span> glyphicon Glyphicon
<span> glyphicon-pencil Icône crayon
<span> glyphicon-user Icône utilisateur
<span> glyphicon-save Icône de sauvegarde
<form> form-horizontal Formulaire horizontal
<div> form-group Groupe de formulaire
<label> control-label Libellé de contrôle
<label> col-sm-2 Occupe 2 colonnes
<div> col-sm-10 Occupe 10 colonnes


Code JavaScript

myUsers.js

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

});


Explication du code JavaScript

Propriétés du scope Objectif
$scope.fName Variable du modèle (nom d'utilisateur)
$scope.lName Variable du modèle (nom de famille de l'utilisateur)
$scope.passw1 Variable du modèle (mot de passe de l'utilisateur 1)
$scope.passw2 Variable du modèle (mot de passe de l'utilisateur 2)
$scope.users Variable du modèle (tableau d'utilisateurs)
$scope.edit Défini sur true lorsque l'utilisateur clique sur Créer un utilisateur.
$scope.error Si passw1 n'est pas égal à passw2, défini sur true.
$scope.incomplete Si un champ est vide (length = 0), mettre à true.
$scope.editUser Définir les variables du modèle
$scope.watch Surveiller les variables du modèle
$scope.test Valider les variables du modèle pour les erreurs et la complétude.
Autres extensions