jas*_*hao 44 angularjs-scope angular
在Angular 2.0中,将没有$scope.
有什么替代方案?如何在组件之间共享数据?该scope选项是否可用于指令?更实际的是,有一种当前的替代品,我可以熟悉吗?
我知道,controller as但我读到控制器也将被淘汰.
Angular团队开始对这场革命感到困惑.
Gün*_*uer 18
在Angular2中,您使用共享服务而不是$scope
https://angular.io/docs/ts/latest/cookbook/component-communication.html
@Injectable()
class SharedService {
someState:String;
someEventStream:Subject<String> = new Subject<String>();
}
Run Code Online (Sandbox Code Playgroud)
@Component({
selector: ...,
providers: [SharedService]
})
class MyComponent {
constructor(private sharedService:SharedService) {}
}
Run Code Online (Sandbox Code Playgroud)
对于上面示例中的每个提供者([SharedService]简称[{provide: SharedService, useClass: SharedService}]),维护单个实例.
这样的提供者的范围是提供它的组件,并且当没有后代具有相同的提供者注册时它是后代.
当组件请求依赖时constructor(private sharedService:SharedService),Angulars DI(依赖注入)开始查看组件自己的提供程序,然后向上查找根组件,然后在bootstrap注册.它返回它找到的第一个.
如果两个组件注入相同的实例(来自相同的提供者),那么他们可以通过订阅和发出Subject或读取和写入状态的事件或通过调用服务上的方法来使用此服务进行通信.
使用controller as是一种习惯于工作的好方法,$scope尽管你仍然需要$scope一些像监视器和事件这样的东西.在Angular 2.0中并没有真正删除控制器.但是不会有相同的ng-controller.您将拥有基本上封装控制器和视图的指令,而不是拥有控制器和视图.
| 归档时间: |
|
| 查看次数: |
54733 次 |
| 最近记录: |