2016-08-22 26 views
0

我正在构建Angular2应用程序,并且还使用嵌套组件构建页面。Angular2将组件绑定到API端点

但是,我确实有一个用例,其中一个作为过滤器的嵌套组件应该使所有其他嵌套组件根据该过滤器上设置的内容更新显示的信息。 我附上了我的页面外观和我想要实现的方案。

enter image description here

我已经知道,一个嵌套的组件可以发出上无论父组件是触发任何定义操作事件。

但是,我想知道两件事情: - 我是否可以将组件绑定到给定的API端点,并让该组件根据所设置的内容更新所显示的信息(通过向端点发出请求)在过滤器上? - 如何使页面上的所有组件都取决于过滤器(如果它们没有直接绑定到API端点)?

最好的问候。

回答

0

您应该创建一个Injectable()服务,您可以从所有组件中访问该服务。

您使用@Injectable()注释一个类来声明服务。然后将此类添加到应用程序模块的providers数组中 - 这将使其可用于所有组件 - 充当单例服务。最后使用组件类的构造函数将服务注入到组件中,并且您现在拥有一个中心对象,您的过滤器结果组件可以读取过滤器设置的状态。

了解更多关于这里的服务:https://angular.io/docs/ts/latest/tutorial/toh-pt4.html

+0

你好彼得。谢谢你的信息。我已经有一个服务,但是你基本告诉我的是,我在服务中每个组件都有一个函数(并且我需要在每个组件中注入服务),或者我在顶层有一个服务父组件并从父代初始化子代,但是没有直接绑定到API端点的权利?我必须承认,这有点令人失望,但它似乎仍然是一种合理的方法。 –

+0

我认为您应该从服务中访问API端点,并在过滤器状态发生更改时将服务请求发送到API端点。然后让你的结果组件从Injectable服务获取他们的数据。这不会给你想要达到的约束吗? –