【问题标题】:What is the equivalent of $scope and $scope.watchcollection in Angular 2?Angular 2 中 $scope 和 $scope.watchcollection 的等价物是什么?
【发布时间】:2018-06-17 02:08:52
【问题描述】:
我正在尝试在 UpgradeModule 和 downgradecomponent 的帮助下将 Angular 1 应用程序迁移到 Angular 2。
在将控制器转换为 component.ts 时,我遇到了一些问题,因为我不确定如何在 angular2 中编写范围和 watchcollection 的替代方案。
有人可以告诉我 Angular 2 中的 $scope 和 $scope.watchcollection 等价物吗?
【问题讨论】:
标签:
javascript
angular
angular2-services
angular2-directives
【解决方案1】:
Angular 2.0 使用 this 而不是 $scope。
2.0 中的主要变化之一是控制器的消亡,以及对组件的新重视。转向基于组件的应用程序的一大优势是更容易定义它们的界面;此外,HTML 元素已经在事件、属性和属性中具有易于映射的接口。
参见 AngularJS 1.3 到 2.0 的迁移here。另请参阅 Angular 2.0 的完整文档here
【解决方案2】:
在 Angular 中与 $scope 相似的是“this”关键字。 Angular 的新变更检测与利用其改进的 DI 的共享服务相结合,消除了对 RootScope 或本地 $scope 的需求。
watchCollection 以类似的方式替换。您类范围内的实体将被评估,除非您竭尽全力不对其进行评估或将默认更改检测策略修改为 Push。
希望这会有所帮助,
告诉我!