1

我有一个页面,上面有两个组件:

Page({
    template: '<ion-navbar *navbar class="contact_navbar">
                    <ion-title>Loan Calculator</ion-title>
                </ion-navbar>
                <ion-content><ck-auto-loan-calculator type="normal"></ck-auto-loan-calculator></ion-content><ck-keypad id="keypad"></ck-keypad>',
    directives: [[ckAutoLoanCalculator], [Keypad]]
})
export class LoanCalculator {}

现在在 ck-auto-loan-calculator 我有一个按钮:(click)="showKeypad()"

showKeypad() 函数曾经有let k = this.app.getComponent('keypad');,这是访问<ck-keypad>组件

现在由于 ionic 更改为 beta 7 并且 angular 更改为 RC,我收到以下错误: ORIGINAL EXCEPTION: TypeError: Cannot read property 'setControl' of undefined

如何使键盘组件在 Ck-auto-loan-calculator 组件中可访问?

谢谢

4

1 回答 1

1

Ionic 2getComponent已被弃用,您可以将组件作为输入传递给另一个组件。

您可以使用以下语法从模板中传递它:

<ck-auto-loan-calculator type="normal" [keypad]="keypad"></ck-auto-loan-calculator>
<ck-keypad #keypad></ck-keypad>

然后在ckAutoLoanCalculator

  @Input() keypad: Keypad

在你的任何地方ckAutoLoanCalculator

  this.keypad.open() // assumes there's a public method on keypad component called open

Plunker 用于将组件作为输入传递,该示例使用模态组件进行说明

于 2016-05-31T01:15:41.197 回答