如何在 Angular 1.4 新路由器组件中绑定到 "this",而不是使用本地变量?



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

有没有更好的方法在新的angular路由器中绑定到"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();
  });
}

还有别的方法吗?快/更好?

我认为这种方式是最快的。但是你必须用操作符var来声明变量_this,以防止将来出现一些错误

var _this = this;

另一个选项是将this绑定到侦听器,如:

  $scope.$on('$locationChangeSuccess', (function (event, newLoc, oldLoc){
    //hides the notifier
    this.accountCollapse = false;
    this.pageTitle = $location.path();
  }).bind(this));

相关内容

  • 没有找到相关文章

最新更新