Javascript 从另一个同级组件2/4调用同级组件方法

Javascript 从另一个同级组件2/4调用同级组件方法,javascript,jquery,angular,angular2-routing,angular2-services,Javascript,Jquery,Angular,Angular2 Routing,Angular2 Services,我有一个父组件和三个子组件: 导航-在页面之间导航 页面-使用Route outlet(员工、部门)加载页面 保存组件-验证后保存该表单 代码如下所示: <app-nav></app-nav> <router-outlet></router-outlet> <app-save></app-save> (这不起作用,因为我的兄弟正在动态加载) 此外,我还想创建一个服务,但不确定如何从加载的组件中获取功能 有什么建议吗?使用

我有一个父组件和三个子组件:

  • 导航-在页面之间导航
  • 页面-使用Route outlet(员工、部门)加载页面
  • 保存组件-验证后保存该表单
  • 代码如下所示:

    <app-nav></app-nav>
    <router-outlet></router-outlet>
    <app-save></app-save>
    
    (这不起作用,因为我的兄弟正在动态加载)
    
  • 此外,我还想创建一个服务,但不确定如何从加载的组件中获取功能


    有什么建议吗?

    使用共享服务,它是一种注入到两个兄弟姐妹中并允许共享数据的服务。我建议保留一个布尔值,每次表单有效时,“保存”组件将设置为true,另一个组件将检查以执行它需要的操作。问题是我的表单将在页面组件中得到验证。但它只能得到验证,除非我通过单击save按钮从save组件调用它。这里是完整的流程。1.员工页面加载到路由器出口(页面组件)。2.用户将填写表单并单击“继续”按钮(保存组件)。3.用户单击“继续”后,它将转到“员工”页面验证该页面。如果验证为真,则返回真,然后“保存”组件将路由到另一个页面。您的组件是否具有类似父子关系的关系?是的,这两个组件是同级的。@Rahussingh您可以使用服务,但我认为您过于复杂了。为什么不能在同一个组件上使用物理保存按钮?使用这种方法会很快让你感到困惑。使用共享服务,它是一种注入到兄弟姐妹中并允许共享数据的服务。我建议保留一个布尔值,每次表单有效时,“保存”组件将设置为true,另一个组件将检查以执行它需要的操作。问题是我的表单将在页面组件中得到验证。但它只能得到验证,除非我通过单击save按钮从save组件调用它。这里是完整的流程。1.员工页面加载到路由器出口(页面组件)。2.用户将填写表单并单击“继续”按钮(保存组件)。3.用户单击“继续”后,它将转到“员工”页面验证该页面。如果验证为真,则返回真,然后“保存”组件将路由到另一个页面。您的组件是否具有类似父子关系的关系?是的,这两个组件是同级的。@Rahussingh您可以使用服务,但我认为您过于复杂了。为什么不能在同一个组件上使用物理保存按钮?使用这种方法,您很快就会感到非常困惑。