2017-10-24 14 views
0

私は単純なページを作成していると私は次のようになりますコンストラクタを理解できるように、私は限り、からNavControllerとAlertControllerする必要があります。Ionic2コンストラクタ、2つの異なるクラス

constructor(public alertCtrl: AlertController 
, navCtrl: NavController) { } 

私の問題は、からNavControllerが認識されないということですコードの後半。私が回線を変更した場合

constructor(public navCtrl: NavController, 
alertCtrl: AlertController) { } 

次に、alertControllerは動作を停止します。私はかなりその新しい初心者の構文の問題を確認します。

+0

別々に動作するので、インポートは正常です。 (&2つのうちの1つだけがコンストラクタで使用されます) – user3564876

答えて

0

は、あなたはあなたがこれらのパラメータprobertiesであるため、注入したいサービスにprivatepublicを追加する必要があり、それらの両方を個別

constructor(public navCtrl: NavController, 
    public alertCtrl: AlertController) { } 
0

ためpublicまたはprivateを指定する必要があります。修飾子を追加すると、同じ場所にメンバーを作成して初期化することができます。

だからあなたのコードは次のようになります。

constructor(
    public navCtrl: NavController, 
    public alertCtrl: AlertController 
) {} 

またはこの:

constructor(
    private navCtrl: NavController, 
    private alertCtrl: AlertController 
) {} 

パラメータのプロパティが宣言されているが、アクセシビリティ修飾子または読み取り専用、またはその両方でコンストラクタパラメータを付けることによって。パラメータプロパティにprivateを使用すると、privateメンバーが宣言され、初期化されます。同様に、パブリック、プロテクト、読み取り専用でも同じことが行われます。

関連する問題