On Github PierreZ / angularjs-bootcamp-2014
Created by Pierre Zemb / @PierreZ
I'm just a student!
Create a Web-based app to show students with AngularJS
Enable Angular
index.html
<html lang="en" ng-app='studentApp'> ... <body ng-controller='Ctrl'>
app.js
var myApp = angular.module('studentApp', []);
myApp.controller('Ctrl', function () {
});
				
					Try the double data binding
index.html
<div class="col-lg-4 student">
<span class="glyphicon glyphicon-remove"></span>
<h2>{{student.name}}</h2>
<p>{{student.class}}</p>
<p>{{student.text}}</p>
<p><a class="btn btn-default" href="#" role="button">View details »</a></p>
					
						app.js
var myApp = angular.module('studentApp', []);
myApp.controller('Ctrl', function ($scope) {
	$scope.student = { 
		"name": "Pierre Zemb",
		"class" : "CIR3" ,
		"text" : "Seems like a nice guy"
	}
});
					
					What about more students?
app.js
$scope.students = new Array();
$scope.students.push({ 
	"name": "Pierre Zemb",
	"class" : "CIR3" ,
	"text" : "Seems like a nice guy"
});
	$scope.students.push({ 
	"name": "Brendan",
	"class" : "CIR1" ,
	"text" : "Seems like a weird guy"
});
					
					index.html
<div class="col-lg-4 student" ng-repeat="student in students">
What about searching?
index.html
</ul> <div class="row"> <input class="search-query" type="text" ng-model="search" placeholder="Search a student"></div> </div> ... <div class="col-lg-4 student" ng-repeat="student in students | filter:search-query">
Remove a student
index.html
<span ng-click="remove(student.name)" class="glyphicon glyphicon-remove"></span>
app.js
$scope.remove = function (name){
	angular.forEach($scope.students, function(student,key) {
  		if (student.name==name) {
  			$scope.students.splice(key,1);
  		};
	});
};
					
				Add a student
app.js
						
$scope.addStudent = function (){
	$scope.students.push($scope.new_student);
};
						
					
					index.html
<input type="text" name="nom" id="nom" ng-model="new_student.name"/> <input type="class" name="class" id="class" ng-model="new_student.class"/> <input type="text" name="text" id="text" ng-model="new_student.text"/> <button type="button" class="btn btn-default navbar-btn" ng-click="addStudent()">Add</button>
What about tabs?
index.html
						
<ul class="nav nav-tabs">
	<li  ng-class="{active: class == selected}"
			ng-repeat="class in classes"
			ng-click="setSelected(class)"><a href="#"></a></li>
</ul>
...
<div ng-if="student.class == selected || selected == 'All' " 
	class="col-lg-4 student"
	ng-repeat="student in students | filter:search | orderBy:'class'">
						
					
					app.js
						
$scope.classes = new Array();
$scope.classes.push("All");
$scope.setSelected = function (select){
	$scope.selected = select;
}