我有一个组件控制器,为了在局部函数中使用它,我必须声明一个局部变量。
有没有更好的方法在新的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));