0

我下面this article编程方式打开ngbpopover获得自举与角2.工作时,它作为每个物品存在如何向酥料饼的引用传递到组件方法没有实例。我得到的只是一个NgbPopoverConfig,但没有提及打开popover。从角2成分

这是我的部件的方法

popOpen(p : NgbPopoverConfig): void { 

    p.open(); //get an error here saying no Open method on NgbPopoverConfig 
} 

,这是我的HTML我在哪里使用材料2基于输入字段。

<md-input type="email" value="" name="em" id="em" placement="left" ngbPopover="adfga" popoverTitle="Popover on left" triggers="manual" #p="ngbPopover" (click)="p.Open()" [(ngModel)]="thisModel.email" 
          #this="ngModel"> 
</md-input> 

有关如何以编程方式打开和关闭打字机组件代码的弹出窗口的任何文档?或一些示例代码?

我使用的角度2.1.0与4.0.0自举,alpha.5和角材料2.0.0 alpha.9-3

回答

1

看来你拼写错误:它应该是open而不是Open。 JavaScript是大小写敏感的

Plunker Example

+0

它不能正常工作...... – user20358

+0

你确定吗?我已经添加了重击器 – yurzui

+0

对不起。我的意思是它不适用于组件中的'popOpen'方法。 – user20358

0

解决它。我必须做两件事。 首先得到该参考ngbPopover

import {NgbPopover } from '@ng-bootstrap/ng-bootstrap/popover/popover';

,改变我的组件方法:

popOpen(p : NgbPopover): void { 

    p.open(); 
} 

然后注册,甚至处理像这样:

<md-input type="email" value="" name="em" id="em" placement="left" ngbPopover="adfga" popoverTitle="Popover on left" triggers="manual" #p="ngbPopover" (blur)="edit=!edit; checkExists(p)" [(ngModel)]="thisModel.email" 
          #this="ngModel"> 
</md-input> 

现在,当我失去控制的文本框,我会有一个组件方法调用,将检查电子邮件是否存在,如果是,我现在可以使用引用p火的open()方法。

我想知道更多关于此edit=!edit;有谁知道为什么这会创建注册模糊事件的魔法?

+0

你不需要从html中调用popOpen吗? –