将数据从一个组件传递到另一个组件的角度为2(父项不是父项,父项是父项)?

时间:2017-05-13 18:58:39

标签: angular angular2-components

你好我是角色2的新人。我陷入了以下情况。我的主页组件中有一个ul。我正在为作业描述做一个firebase api调用并将它存储到一个数组,让我们说一个作业数组,我在主页中显示数据,如下所示

<ul *ngFor = "let job of jobs " class="job-list" routerLink="jobdetails" >
    <div class="row">
      <div class="col-md-3">
        <li>{{job.nameOfThePost}}</li>
      </div>
      <div class="col-md-3">
        <li>{{job.lastDateOfApplication}}</li>
      </div>
      <div class="col-md-3">
        <li>{{job.noOfJob}}</li>
      </div>
      <div class="col-md-3">
        <li>{{job.educationalQualification}}</li>
      </div>
    </div>
  </ul>

点击其中一个ui我想把用户带到一个新组件,让我们说jobdetails组件。 现在我的问题是我想将一个数组传递给jobdetails组件。由于jobdetails组件不是主页组件的子组件,因此如何将数据从主页组件传递到jobdetails组件。我找到的所有帮助都是关于如何将数据从子节点传递到父节点或父节点传递给子节点。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

要获得将信息从一个组件共享到另一个组件的服务,如果它是小规模应用程序,则推荐使用它作为嵌套多个事件发射器不是处理数据的好方法。

另一种方法是Redux方法,推荐用于中型到大型应用的应用。这是Store和Reducers的概念,所有数据都在一个地方处理。当您必须在多个组件之间同步数据时,这非常有用。

take a look for further info

答案 1 :(得分:0)

您可以通过多种方式实现目标。所有都涉及某种共享类。正如@ AJT_82已经建议的那样,共享服务对于Angular新手来说是最常见的方式。

另一种选择是使用NgRX并将状态信息推送到NgRX表中,第二页在到达那里时可以订阅。

你也可能想要考虑只是传递一个ID并在你到达时从数据库加载信息,这样数据就不会陈旧