0

我有一个组件控制器,为了在本地函数中使用它,我必须声明一个本地变量。

有没有更好的方法在新的角度路由器中绑定到“this”?例如这个函数:

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 回答