在父 html 中单击时,在 Angular 2/Ionic 中调用子方法

Posted

技术标签:

【中文标题】在父 html 中单击时,在 Angular 2/Ionic 中调用子方法【英文标题】:When clicked in parent's html, call child method in Angular 2/Ionic 【发布时间】:2017-10-13 09:14:51 【问题描述】:

我面对这种情况好几个小时,我找不到正确的答案。我将 angular 2 与 ionic 2 一起使用。

我有 1 页(主页 - home.tshome.html

1 个组件(GoogleMaps、google-maps.tsgoogle-maps.html

home.html 我有这个:

<ion-header>
  <ion-navbar>
    <ion-buttons end>
      <button ion-button (click)="findMyLocation()">Find</button>
    </ion-buttons> 
  </ion-navbar>
</ion-header>

google-maps.ts 我有 findMyLocation 方法,但我不知道如何在我的组件中从 home.html(父页面)触发它

完整代码在这里:http://plnkr.co/edit/Qcy4BKHgC1GBMrLJO7lj

错误是:无法读取未定义的属性“findMyLocation”

编辑:我在 home.ts 中找到了使用此代码的一种方法,但我希望成为另一种更容易的方法?有吗?

@ViewChild(GoogleMaps) gmap: GoogleMaps;

  findMyLocation()
    this.gmap.findMyLocation();
  

【问题讨论】:

【参考方案1】:

你可以试试这个:

<google-maps #googlemaps></google-maps>

然后像这样使用它:

<button ion-button (click)="googlemaps.findMyLocation()">Find</button>

我用一个简单的例子试了一下,效果很好。到目前为止,我还没有在文档中找到任何东西,所以我不能告诉你它到底是如何工作的。似乎 # 创建了一个引用您的组件的局部变量,然后您可以在当前范围内使用它。

【讨论】:

谢谢!这就是我要找的。​​span>

以上是关于在父 html 中单击时,在 Angular 2/Ionic 中调用子方法的主要内容,如果未能解决你的问题,请参考以下文章

Angular 7:单击外部时关闭菜单

在父组件中显示来自子组件的按钮的结果 - Angular

单击 iframe 中的按钮 > 在父窗口中隐藏 div

Angular UI 模态 2 方式绑定不起作用

子视图单击项目以显示在父视图标签中

角度 2 - 在 div 单击时,将对象传递给另一个组件,另一个组件使用该对象调用休息服务