スタックオーバーフローで他のスレッドを見ると、ES6クラス内にプライベートメソッド/変数を持つことは複雑になります。ビューからアクセスできるように、AngularのES6クラスメソッドを避ける
私は角1.5を使用していますが、角度2のコントローラは、クラスを使用して書かれています。将来の移行のためにコードを準備しておきたいと考えました。
これは問題になります。そのクラス内のすべてのメソッドと変数がビューで使用できるようになりました。ビュー(HTML)からは、MyController.privateMethod();
が問題になります。
どうすれば対処できますか?私はES6モジュールを使いたいと思っていますが、Angular 2 Controllerの移行にはお勧めできません。
class MyController {
constructor(){
this.foo = 'foo';
}
privateMethod() {
...
}
publicMethod(){
...
}
}
angular.module('myApp').controller('MyController', MyController);
ありがとう:
は、ここでのコード例です!
$ scopeを使用し、プライベート関数をそのスコープの一部として定義しないでください。そうすれば、彼らはその見解から呼び出すことはできません。 – yBrodsky
'class'構文は実際には関数を作成し、' prototype'に関数を追加します。 [class syntax trick you](https://github.com/joshburgess/not-awesome-es6-classes)に良いJSの書き方を忘れさせてはいけません。モジュールパターンはうまくいくはずです。 – 4castle