4

由于我们无法在 Angular 1.4+ 中注入$scope内部控制器,我们如何才能像过去那样观察表达式$scope.$watch

$scope可以在此处看到注入尝试(“无法实例化控制器”错误),教程告诉我们:

如果我们在其中传递 $scope,Angular 将无法实例化控制器。它定义了它的可观察属性。(来源

4

3 回答 3

2

我刚刚发现ngNewRouter 上存在导致此问题的错误。修复,但尚未发布。

要解决此问题,请尝试以下操作:

$ git clone git@github.com:angular/router.git
$ cd router
$ npm install
$ gulp angularify

之后,将 dist 文件复制到您的项目中

于 2015-05-13T12:44:22.643 回答
2

我遇到了这个,需要一个 npm 包;暂时让团队中的每个人都从源代码构建是没有好处的。我们在 npm 上发布了一个临时包来解决这个问题:npm install loomio-angular-router@0.5.7

注意:您可能需要将 ng-viewport 重命名为 ng-outlet以使临时包正常工作。

于 2015-05-20T16:23:18.390 回答
2

您在 .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;

});

}
于 2015-06-11T13:55:22.763 回答