【发布时间】:2016-02-03 22:58:14
【问题描述】:
如果我的 angular2 应用程序看起来像这样,并且顶部的金发女郎要与右侧中间的姜黄交谈,他们应该为此组织一个聚会吗?
发出事件,使用输入和输出 - 这是 angular2 方式?数据应该从子节点到父节点再到根节点,然后从父节点到子节点再到节点?我是新来的,我经常想要一些全局对象,我可以在其中保留所有组件需要知道的一些信息。当该全局对象中的数据发生变化时,它应该在它注入的所有其他服务和组件中神奇地发生变化。例如用户登录/注销,或者如果他点击按钮等等。
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
|...
【问题讨论】:
-
服务是单例的,可以用来共享状态。
-
现在如果不考虑山羊,我将无法想到 angular2...谢谢>_>
-
像往常一样,这取决于...您的问题太宽泛了。当您说“当数据发生变化时......它应该在所有其他......组件中发生变化” - 是否需要通知组件,或者数据只需要更改?即,您是否需要组件执行某些操作,例如在数据更改时调用函数,或者您是否只需要更新它们的视图,Angular 会自动为您做些什么?我建议你问一个更具体的问题,或者几个问题。
-
我更新了问题
标签: angular