如果我的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组件需要知道用户是否已记录,如果是,则显示(* ngIf)sub2中的某个div。或者从mySub3组件调用googleAuth服务中的checkGauth()。从mySub2组件添加视频到YouTube播放列表和onAdded在sub2中显示结果,或从sub3创建新播放列表并在sub2上显示。很多变种。
我很厌倦为所有这些编写代码。它使它更复杂。有时想着这样做:
|-root
|-google api component
|-google auth
|-youtube api
|-playlists
|-video
|-myComponent
|-sub1
|-sub2
|-sub3
|...
答案 0 :(得分:6)
为每个API构建服务是将组件隔离在一起的好方法。在您的情况下,您需要构建一个 GoogleService ,它可以保存您运行应用程序当前状态的上下文。服务可以在需要的时间和地点注入您的组件。
说过在某些情况下我们可以画出细线。在那些情况下,
消息传递:在您的情况下,通过您的组件传递数据,如果您的父母知道登录并且孩子想知道登录,传递它并且绑定将保持它已更新,以便您可以在您的子组件上可靠地使用它。
创建帮助,它封装了与您的功能相关的所有功能。使用旧时尚导入引用它并在组件上使用它。
发出事件,使用输入输出 - 这是angular2方式吗?
是的,这是了解组件需要和组件发出的最佳方式。但这并不难,双向数据绑定让您可以轻松地完成这项工作。
数据应该从子节点传递到父节点,然后传递到根节点 父母对孩子到了什么地步?
让孩子通过输入从Parent获取数据并返回输出作为回调,Checkout this Blog to see how it is done on a real world app.
希望有助于您入门。欢迎来到Angular 2,你会喜欢它!