1

私はこの記事に従って、ブートストラップを Angular 2 で動作させています。これは記事のとおりに機能しますが、ポップオーバーの参照をコンポーネント メソッドに渡す方法の例はありません。私が得たのは だけでしたNgbPopoverConfigが、ポップオーバーを開くための参照がありません。

これは私のコンポーネントメソッドです

popOpen(p : NgbPopoverConfig): void {

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

これは、マテリアル 2 ベースの入力フィールドを使用している私の html です。

<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>

タイプスクリプトコンポーネントコードからポップオーバーをプログラムで開いたり閉じたりする方法に関するドキュメントはありますか? またはいくつかのサンプルコード?

Bootstrap 4.0.0-alpha.5 および angular material 2.0.0-alpha.9-3 で angular 2.1.0 を使用しています

4

4 に答える 4

1

解決しました。私がしなければならなかったことは2つありました。最初に 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;、これがぼかしイベントを登録する魔法を作成する理由を知っている人はいますか?

于 2016-11-14T18:23:09.937 に答える