2016-09-07 21 views
0

Angular 1.5コードをES6に書き直そうとしています。私はng-dialogを使用していますが、私はそれをインポートしていますが、モジュール自体の依存関係にしようとしているので、コントローラに注入していません。ngDialog in ES6 Angular 1.5コントローラ

import angular from 'angular'; 
import ngDialog from '../libraries/ng-dialog'; 

const template = `<div> 
     <button ng-click="ctrl.openTheDialog()">Click Me</button> 
    </div>`; 

class MyController { 
    constructor($scope) { 
     'ngInject'; 
     this.$scope = $scope; 
    } 

    openTheDialog() { 
     ngDialog.open({ 
      template: templateUrl, 
      scope: this.$scope 
     }); 
    } 
} 

angular.module('myApp', ['ngDialog']) 
    .component('myComponent', { 
     template: template, 
     controllerAs: 'ctrl', 
     controller: MyController 
    }); 

私はボタンをクリックすると、私はopenは関数ではありませんエラーメッセージが表示されます:私は、次のコードを持っています。私はどこでここで間違いを犯したのかは分かりません。誰かがエラーを指摘する手助けができますか?ありがとう!

+2

それはあなたに登録する必要がありますので、私は、代わりにそれをインポートするの、あなたは本当に「ngDialog」を注入する必要が推測します応用。 'angular.module(....)'で登録することを忘れないでください – CodeNashor

答えて

0

は、あなただけのコンストラクタ内のプロパティにngDialogを設定する必要が判明:

constructor($scope, ngDialog) { 
    this.ngDialog = ngDialog; 
    ... 
    ... 
} 

openTheDialog() { 
    this.ngDialog.open({ 
    ... 
    }); 
} 
関連する問題