Angular 2.0中$scope的替代方案

Angular 2.0中$scope的替代方案,angular,angularjs-scope,Angular,Angularjs Scope,在Angular 2.0中,将没有$scope 还有什么替代方案?如何在组件之间共享数据?指令中是否有范围选项?更实际地说,目前有没有一种替代方案可以让我熟悉呢? 我知道控制器是,但我了解到控制器也将被淘汰 对这样一场革命感到困惑的Angular团队已经开始了 我根本不担心2.0。angular团队表示: 在开发的早期尝试学习一些东西可能会在很大程度上浪费你的时间。也就是说,如果你真的想在Angular 2.0上获得一个快速启动,在1.3中引入的新路由器是——到目前为止——他们打算在2.0中使

在Angular 2.0中,将没有
$scope

还有什么替代方案?如何在组件之间共享数据?指令中是否有
范围
选项?更实际地说,目前有没有一种替代方案可以让我熟悉呢?

我知道
控制器是
,但我了解到控制器也将被淘汰


对这样一场革命感到困惑的Angular团队已经开始了

我根本不担心2.0。angular团队表示:


在开发的早期尝试学习一些东西可能会在很大程度上浪费你的时间。也就是说,如果你真的想在Angular 2.0上获得一个快速启动,在1.3中引入的新路由器是——到目前为止——他们打算在2.0中使用的路由器

使用
控制器作为
,这是一种很好的方式,可以习惯在没有
$scope
的情况下工作,尽管您仍然需要
$scope
来进行一些观察者和事件。在Angular 2.0中,并没有真正删除控制器。但不会有一个与ng控制器相当的
ng控制器
。没有控制器和视图,您将只使用基本上封装控制器和视图的指令。

Angular 2.0使用
而不是
$scope

2.0的主要变化之一是控制器的消亡,以及对组件的新强调。 转向基于组件的应用程序的最大优势在于更容易定义它们的接口;另外,HTML元素在事件、属性和属性中已经有了一个易于映射的接口

请参见AngularJS 1.32.0的迁移。
另请参见Angular 2.0的完整文档Angular 2与Angular 1一样,不在组件之间共享数据。相反,他们所做的是通过在模板中使用数据来传递数据,并传递事件(通过使用事件默认的冒泡行为)。您可以使用组件类访问模式中的数据(如果您不知道我所说的类是什么意思,请查看Youtube上的100000000个“angular 2-如何开始”视频)。

在Angular2中,您使用共享服务,而不是
$scope

@Injectable()
类共享服务{
someState:字符串;
someEventStream:Subject=新主题();
}
@组件({
选择器:。。。,
提供者:[共享服务]
})
类MyComponent{
构造函数(私有共享服务:共享服务){}
}
对于上述示例中的每个提供程序(
[SharedService]
[{provide:SharedService,useClass:SharedService}]
的缩写)

此类提供程序的作用域是提供该提供程序的组件及其子代(如果没有子代注册相同的提供程序)

当组件请求依赖项
构造函数(私有共享服务:共享服务)
时,Angulars DI(依赖项注入)开始查看组件自己的提供程序,然后向上查看根组件,然后查看在引导时注册的提供程序。它返回它找到的第一个


如果两个组件注入了相同的实例(来自同一个提供者),那么它们可以使用此服务进行通信,方法是订阅并发送
主题的事件,或者读写状态,或者调用服务上的方法。

我们可以在angular中这样做,而无需将服务注入组件类。通过使用rxjs subject“behavior subject”,它承载的数据满足与$scope变量相同的要求


下面是一个示例,我在
sub.service.ts
中导出了一个
常量字母
,它是在必要的组件中订阅的。

我们不应该等到它被发布吗?在那之前,这不是一个真正的编程问题。更像是一个设计讨论。这个问题需要更新答案。你能提供一个报价吗?或者更好的是,一个指向你在哪里找到它的链接?@jasonszhao Igor和Misko在52:00分左右的角空中谈论它。其他一些好的来源是ng europe的视频或Rob Eisenbergs的博客文章。你可以搜索“controller as”,看看他在哪里谈到它,它会像聚合物一样吗?这是2014年写的,现在已经不再有效了。如果您使用Angular 1.x开发,您肯定应该尝试至少使用Angular 1.5,其中他们介绍了Angular.component方法。这是一种非常棒的方法。我使用输入并将提供程序注入父组件,然后使用输入将单个提供程序实例添加到2个子组件hanks。共享服务也可以在不相关的组件之间共享,将其传递给输入仅适用于直接子级。