Vitor Alencar
@vitormalencar
I do computer stuff.
+Vitor Alencar
é um framework JavaScript open-source, mantido pelo Google, que auxilia na execução de single-page applications.
é extremamente flexivel e escalavel se enquadrando em modelos MVC (model view controller) MVVM (model-view-view-model) e como seus criadores o denominam hoje MVW (model-view-whatever)
AngularJS estende os atributos HTML with Diretivas, e bind elementos com Expressões.
Primeiro, nós precisamos de fato configurar o essencial para um projeto Angular. Há certas coisas para se observar antes de começarmos, que geralmente consiste em uma declaração ng-app para definir sua aplicação, um Controller para conversar com sua ‘View’, e alguma ligação DOM e inclusão do Angular. Aqui temos o mínimo essencial:
<!DOCTYPE html>
<html>
<head>
<title>Angular Talk#1</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
</head>
<body ng-app>
<input type="text" ng-model="nome" placeholder="digite seu nome">
<h1>Hello {{nome}}!</h1>
</body>
</html>
Data-binding em apps com AngularJs é a sincronização automática dos dados entre o model e a view
angular.module('milfaqApp', [])
angular.module('milfaqApp')
Tudo no angular são módulos, eles nos ajudam a modular nosso projeto e trabalhar em pequenos trechos de código
<body ng-app="milfaqApp">
<div id="page-wrapper">
<div class="container-fluid">
<h1>oi pessoas</h1>
</div>
</div>
<script src="scripts/app.js"></script>
</body>
angular.module('milfaqApp', [])
Definem o comportamento do app setando funções e valores
.controller('UsersIndexController', ['$scope', function($scope) {
$scope.users = {
nome:'vitor',
email:'alencar@gmail.com',
estagiario:true,
numeroDaCarteira:1234
}
}])
<div ng-controller="UsersIndexController">
<h4>Usuários {{users.nome}}</h4>
<p>{{users.email}}</p>
</div>
.controller('UsersIndexController', ['$scope', function($scope) {
$scope.users = {
nome:'vitor',
email:'alencar@gmail.com',
estagiario:true,
numeroDaCarteira:1234
}
}])
<div ng-controller="UsersIndexController">
<h4>Usuários {{users.nome}}</h4>
<p>{{users.email}}</p>
<p ng-hide="estagiario">{{users.numeroDaCarteira}}</p>
</div>
.controller('UsersIndexController', ['$scope', function($scope) {
$scope.users =[
{
nome:'vitor',
email:'alencar@gmail.com',
estagiario:true,
numeroDaCarteira:1234
},
{
nome:'Marcelo',
email:'marcelo@gmail.com',
estagiario:false,
numeroDaCarteira:1234
},
]
}])
<div ng-controller="UsersIndexController">
<div ng-repeat="pessoa in users">
<h4>Usuários {{pessoa.nome}}</h4>
<p>{{pessoa.email}}</p>
<p ng-hide="pessoa.estagiario">{{pessoa.numeroDaCarteira}}</p>
</div>
</div>
.config(function ($stateProvider,$urlRouterProvider) {
$stateProvider
.state('/', {
url:'/',
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.state('usersIndex', {
url:'/users',
templateUrl: 'views/users/index.html',
controller: 'UsersIndexController'
})
$urlRouterProvider.otherwise('/');
})
angular.module('issuresFactory',[])
.factory('issuresFactory', ['$resource',function ($resource) {
return $resource('http://0.0.0.0:3000/issures/:id/.json', { id: '@_id' });
}]);
angular.module('milfaqApp')
.controller('IssureIndexController',['$scope', 'issuresFactory', function($scope, issuresFactory) {
$scope.index = function(){
$scope.issures = issuresFactory.index();
};
$scope.index();
}]);
angular.module('issuresFactory',[])
.factory('issuresFactory', ['$resource',function ($resource) {
return $resource('http://0.0.0.0:3000/issures/:id/.json', { id: '@_id' });
}]);
angular.module('milfaqApp')
.controller('IssureIndexController',['$scope', 'issuresFactory', function($scope, issuresFactory) {
$scope.index = function(){
issuresFactory.index()$promise.then(
//success
function( data ){
$scope.issures = data;
},
// error
function( error ){
// error logic
},
);
};
$scope.index();
}]);