2017-04-12 11 views
2

私はionic指令を作成しようとしていましたが、それは機能しません。 ディレクティブが自動的にサイズを変更できるようにします。だから、それはちょうどサイズ変更を続けるテキストがより多くあるとき。Ionic 3指令が機能しない

これは私のコードです: 私のプロジェクトは、角度4、新しいバージョンを使用しているイオン3プロジェクトです。

import { Directive, HostListener, ElementRef } from '@angular/core'; 

@Directive({ 
    selector: '[auto-resize-text-input]' // Attribute selector 
}) 
export class AutoResizeTextInput { 
    constructor(public elem: ElementRef) { 
    console.log('Hello AutoResizeTextInput Directive'); 
    } 

    @HostListener('input', ['$event.target']) onInput() { 
    this.resizeTextOnInput(); 
    } 

    private resizeTextOnInput() { 
    this.elem.nativeElement.style.overflow = 'hidden'; 
    this.elem.nativeElement.style.height = 'auto'; 
    this.elem.nativeElement.style.height = this.elem.nativeElement.scrollHeight + "px"; 
    } 
} 

お願いしますか?

+0

こんにちは、あなたはその解決策を見つけましたか? – Yasir

+0

まだ解決策が見つかりませんでした。イオンフォーラムにお問い合わせください。まだ解決策はありません。 –

+0

うまくいけば、ここで答えを見つけることができます。https://chat.stackoverflow.com/rooms/153499/ionic-3 –

答えて

0

ディレクティブファイルをコンポーネントフォルダに置いた場合。

それを再構築 directives/your-directive components/your-directive からあなたのファイルを移動

:ここに答えがあります。がんばろう!

+0

ディレクティブフォルダ内で何が間違っているのかわからない、コードはかなりわかりました –

+1

ionic 3のページで知っているように、あなたはファイルpage.module.tsを持っています。任意のコンポーネントを使用する場合は、ディレクティブをインポートする必要があります。ここでディレクティブをインポートする必要があります。 –

+0

@BitaHo答えがうまくいきます。私はapp.module.tsからインポートを削除し、それをpage.module.tsファイルに追加し、ディレクティブが動作を開始しました。 – Landen

3

私は同じ問題を抱えていました。このディレクティブは、アプリケーションでは認識されませんでしたが、エラーは発生しませんでした。だから私はメインモジュール 'decalarationsから削除し、ディレクティブを使用するページモジュール' decalarationsに追加され、問題はなくなりました。

+0

私のために働きます - ディレクティブ宣言をコンポーネントのmodule.tsに移動することは私にとっても効果的でした。 – eugene

0

多分これはあなたを助ける:

、コンポーネント内のディレクティブを使用している場合は、app.module.tscomponents.module.tsまたは単純にインポートdirectives.module.tsページにあなたのディレクティブを使用するapp.module.tsでそれをインポートします。

関連する問題