Christian Gill / @gillchristian
Contenido, informacion (server, DB)
Interface donde se presenta la informacion (modelo)
Relaciona o une el modelo con la vista
Lo que sea significa "lo que sea que te funcione mejor".
- Igor Minar, Angular team
Data-binding es la sincronización automática de datos entre los componentes del modelo y la vista.
// --- app.js ---
(function(){
angular.module('appModule', []); // creacion
})();
// --- app.controller.js ---
(function(){
angular.module('appModule'); // referencia
})();
// --- evitar ---
// --- app.js ---
var app = angular.module('appModule', []); // creacion
// --- app.controller.js ---
app.module('appModule'); // referencia
Services:
Objectos especializados:
Es definido por un constructor y usado para aumentar el Scope:
Es un service construido por una funcion que puede recibir como parametros a otros services, las instancias de este service son el objeto que la funcion devuelve.
Uso:
Permiten expandir el DOM agregando nuevas funcionalidades.
Todo el manejo del DOM deberia hacerce en las directives.
Dependency Injection (DI) is a software design pattern that deals with how components get hold of their dependencies.
El objeto recibe las dependencias, en lugar de crearlas. Se trata de la eliminación de las dependencias no modificables (hardcodeadas), por lo que es posible cambiarlas cuando sea necesario.
Se puede usar tanto al definir componentes como en los bloques run y config de un modulo.
Services, directives, filters, y animations: se les inyecta services y values.
angular.module('myModule', [])
.factory('serviceId', ['depService', function(depService) {
// ...
}])
.directive('directiveName', ['depService', function(depService) {
// ...
}])
.filter('filterName', ['depService', function(depService) {
// ...
}]);
Controllers, se les inyecta services y values.
someModule.controller('MyController', ['$scope', 'dep1', 'dep2',
function($scope, dep1, dep2) {
...
$scope.aMethod = function() {
...
}
...
}]);
Al metodo run se le inyecta services, values y constants. Pero no providers.
Al metodo config se le inyecta providers y constants. Pero no services ni values.
angular.module('myModule', [])
.config(['depProvider', function(depProvider) {
// ...
}])
.run(['depService', function(depService) {
// ...
}]);
Modulos como contenedor de dependencias
angular.module('myModule', ['myModule.services', 'myModule.controllers']);
angular.module('myModule.services', [])
.services('productsService', productsService);
angular.module('myModule.controllers', ['productsService'])
.controller('ProductController' ['productsService',
function(productsService) {
}
]);