directivas compile angular angularjs-scope

compile - directivas angularjs



Alternativa a $ scope en Angular 2.0 (5)

Angular 2 no comparte datos entre componentes como lo hizo Angular 1. En lugar de eso, lo que hacen es transmitir los datos utilizándolos dentro de la plantilla y pasando eventos (simplemente usando el comportamiento de burbuja que los eventos tienen por defecto). Y accede a los datos del patrón mediante el uso de la clase de componente (Eche un vistazo a los 1000000000 "angular 2 - Cómo empezar" en Youtube si no tiene idea de lo que quiero decir con clase).

En Angular 2.0, no habrá $scope .

¿Cuál es la alternativa a eso? ¿Cómo podré compartir datos entre los componentes? ¿La opción de scope estará disponible en directivas? Más prácticamente, ¿existe una alternativa actual a la que pueda conocer?

Soy consciente del controller as pero leí que los controladores también serán eliminados.

Confundido en tal revolución, el equipo Angular ha comenzado.



Usar el controller as es una buena manera de acostumbrarse a trabajar sin $scope aunque todavía necesitará $scope para algunas cosas como vigilantes y eventos. Los controladores realmente no se eliminan en Angular 2.0. Pero no habrá un equivalente de ng-controller . En lugar de tener controladores y vistas, solo tendrá directivas que esencialmente encapsulan el controlador y la vista.


En Angular2 utiliza servicios compartidos en lugar de $scope https://angular.io/docs/ts/latest/cookbook/component-communication.html

@Injectable() class SharedService { someState:String; someEventStream:Subject<String> = new Subject<String>(); }

@Component({ selector: ..., providers: [SharedService] }) class MyComponent { constructor(private sharedService:SharedService) {} }

Para cada proveedor ( [SharedService] es la abreviatura de [{provide: SharedService, useClass: SharedService}] ) en el ejemplo anterior se mantiene una única instancia.

El alcance de dicho proveedor es el componente donde se proporciona y sus descendientes cuando ningún descendiente tiene el mismo proveedor registrado.

Cuando un componente solicita un constructor(private sharedService:SharedService) dependencias constructor(private sharedService:SharedService) , Angulars DI (inyección de dependencia) comienza a mirar los proveedores propios de los componentes y luego hacia arriba hacia el componente raíz y luego a los proveedores registrados en el arranque. Devuelve el primero que encuentra.

Si dos componentes obtuvieron la misma instancia (del mismo proveedor) inyectada, entonces pueden comunicarse utilizando este servicio suscribiéndose y emitiendo eventos del Subject o leyendo y escribiendo el estado o llamando a métodos en el servicio.


Angular 2.0 está usando this lugar de $scope .

Uno de los principales cambios en 2.0 es la muerte del controlador y un nuevo énfasis en los componentes. La gran ventaja de avanzar hacia aplicaciones basadas en componentes es que es más fácil definir sus interfaces; Además, los elementos HTML ya tienen una interfaz fácil de mapear en eventos, atributos y propiedades.

Ver la migración de AngularJS 1.3 a 2.0 aquí . También vea la documentación completa de Angular 2.0 aquí