0

コンポーネントコントローラーがあり、これをローカル関数内で使用するには、ローカル変数を宣言する必要があります。

新しい角度ルーター内で「これ」にバインドするより良い方法はありますか? たとえば、この関数:

function appController ($router, $scope, $location,  authService, $scope, $timeout) {
  this.authService = authService;
  this.pageTitle = "title";
  _this = this;
  //when location changes does some stuff
  $scope.$on('$locationChangeSuccess', function (event, newLoc, oldLoc){
    //hides the notifier
    _this.accountCollapse = false;
    _this.pageTitle = $location.path();
  });
}

それを行う別の方法はありますか?より速く/より良い?

4

1 に答える 1

2

この方法が一番早いと思います。_thisただし、将来のエラーを防ぐために、演算子 var で変数を宣言する必要があります

var _this = this;

this別のオプションは、次のようにリスナーにバインドすることです。

  $scope.$on('$locationChangeSuccess', (function (event, newLoc, oldLoc){
    //hides the notifier
    this.accountCollapse = false;
    this.pageTitle = $location.path();
  }).bind(this));
于 2015-05-25T18:56:14.357 に答える