0

Я следую this article, чтобы получить загрузочный лоток, работающий с угловым 2. Хотя это работает как статья, нет примера того, как передать ссылку popover методу компонента. Все, что у меня было, это NgbPopoverConfig, но у меня нет ссылки на открытие popover.программно открытый ngbpopover из углового компонента 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> 

Любая документация о том, как программно открыть и закрыть popover из кода компонента машинописного текста? или какой-нибудь пример кода?

Я использую угловой 2.1.0 с Bootstrap 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

Вам не нужно вызывать popOpen из html? –

Смежные вопросы