再谈Angular2中的全球数据
如果我的angular2应用程序看起来像这样,上面的金发女郎要和中间右边的ginger聊天,他们应该为此组织一个聚会吗 发出事件,使用输入和输出-这是angular2方式吗?数据应该从一个子级到父级再到根级,然后从父级到子级再到点?我是新来的,通常我希望有一些全局对象,我可以保存一些所有组件都需要知道的信息。当该全局对象中的数据发生变化时,它所注入的所有其他服务和组件中的数据都应该发生神奇的变化。例如,用户登录/注销,或者单击按钮等等再谈Angular2中的全球数据,angular,Angular,如果我的angular2应用程序看起来像这样,上面的金发女郎要和中间右边的ginger聊天,他们应该为此组织一个聚会吗 发出事件,使用输入和输出-这是angular2方式吗?数据应该从一个子级到父级再到根级,然后从父级到子级再到点?我是新来的,通常我希望有一些全局对象,我可以保存一些所有组件都需要知道的信息。当该全局对象中的数据发生变化时,它所注入的所有其他服务和组件中的数据都应该发生神奇的变化。例如,用户登录/注销,或者单击按钮等等 import {Injectable} from 'angu
import {Injectable} from 'angular2/core';
@Injectable()
export object Globals {
logged: false,
showThatDiv: true
}
但我在某个地方读到它是Angular1,而不是Angular2。是这样吗?还是我错了?它看起来不像全局汤,只是全局状态的对象
例如,现在我有了这样的结构:
|-root
|-google api component
|-google auth
|-youtube api
|-playlists
|-video
|-myComponent
|-sub1
|-sub2
|-sub3
|...
mySub1组件需要知道用户是否登录,如果是,则在sub2中显示(*ngIf)一些div。或者从googleAuth服务中的mySub3组件调用checkGauth()。从mySub2组件将视频添加到YouTube播放列表并在sub2中添加显示结果,或从sub3创建新播放列表并在sub2上显示。很多变体
我厌倦了为所有这些编写代码。这使它更加复杂。有时会考虑这样做:
|-root
|-google api component
|-google auth
|-youtube api
|-playlists
|-video
|-myComponent
|-sub1
|-sub2
|-sub3
|...
为每个API构建服务是将组件从混乱中分离出来的好方法。在您的情况下,您需要构建一个谷歌服务,它可以在应用程序运行的当前状态下保存您的上下文。服务可以在需要的时候和地点注入到组件中 话虽如此,在某些情况下,我们无法划清界限。在这些情况下
希望它能帮助你开始。欢迎来到Angular 2,你会喜欢这里的 服务是单例的,可以用来共享状态。现在我想angular2的时候会想到山羊…谢谢>\u>像往常一样,这取决于。。。你的问题太宽泛了。当你说“当数据发生变化时……它应该在所有其他……组件中发生变化”——组件需要得到通知,还是数据只需要改变?也就是说,您是否需要组件做一些事情,比如在数据更改时调用函数,或者您是否只需要更新组件的视图,哪个角度会自动为您做?我建议你问一个更具体的问题,或者几个问题。我更新了这个问题,如果我需要从googleAuth服务中的mySub3组件调用checkGauth()中找到如何在ng2方式中执行?检查这个Plunkr,注意heroservice,它被传递到构造函数上的组件中,然后你就可以这样做了。googleAuthService.checkGauth()在控制器上。