4

Angular 1.4+ ではコントローラー内に注入できない$scopeため、以前のように式を監視するにはどうすればよい$scope.$watchでしょうか?

挿入の試みはここで$scope確認できます(「コントローラをインスタンス化できませんでした」というエラー)。チュートリアルでは次のように説明されています。

$scope を渡すと、Angular はコントローラーをインスタンス化できません。これは、監視可能なプロパティを定義します。(ソース

4

3 に答える 3

2

私はこれに遭遇し、npm パッケージが必要でした。当分の間、チームの全員がソースからビルドするのは良くありません。この問題を修正する暫定パッケージを npm でリリースしました。npm install loomio-angular-router@0.5.7

:暫定パッケージを機能させるには、ng-viewport の名前を ng-outlet に変更する必要がある場合があります。

于 2015-05-20T16:23:18.390 に答える
2

この問題を引き起こしている ngNewRouterのバグがあることを知りました。修正済みですが、まだリリースされていません。

これを回避するには、次のことを試してください。

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

その後、dist ファイルをプロジェクトにコピーします。

于 2015-05-13T12:44:22.643 に答える
2

$watch が .activate で利用可能です。以下を確認してください(私のアプリからコピーして貼り付けてください)。

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 に答える