由于我们无法在 Angular 1.4+ 中注入$scope
内部控制器,我们如何才能像过去那样观察表达式$scope.$watch
?
$scope
可以在此处看到注入尝试(“无法实例化控制器”错误),教程告诉我们:
如果我们在其中传递 $scope,Angular 将无法实例化控制器。它定义了它的可观察属性。(来源)
我遇到了这个,需要一个 npm 包;暂时让团队中的每个人都从源代码构建是没有好处的。我们在 npm 上发布了一个临时包来解决这个问题:npm install loomio-angular-router@0.5.7
注意:您可能需要将 ng-viewport 重命名为 ng-outlet以使临时包正常工作。
您在 .activate 中有可用的 $watch。检查下面(从我的应用程序复制粘贴)。
function accountHistoryController (authService, accountFactory, CONSTANTS, $q, $routeParams) {
}
accountHistoryController.prototype.canActivate = function() {
return !!this.authService.isAuthenticated();
}
accountHistoryController.prototype.activate = function($scope) {
console.log ($scope);
$scope.$watch('_this.currentPage', function(newPage){
if (newPage == undefined) return;
});
}