Как мы можем наблюдать выражения внутри контроллера в angular 1.4, используя angular-new-router

Поскольку мы не можем вводить $scope внутри контроллеров в Angular 1.4+, как мы можем смотреть выражения, как мы привыкли делать с $scope.$watch?

Попытка ввести $scope можно увидеть здесь (ошибка "Не удалось создать экземпляр контроллера"), а учебники говорят нам, что:

Angular не сможет создать экземпляр контроллера, если мы передадим в него $scope. Это определяет его наблюдаемые свойства на этом. ( источник)

3 ответа

Решение

Я столкнулся с этим и нуждался в пакете npm; нет ничего хорошего в том, чтобы все в команде строили из исходников на данный момент. Мы выпустили промежуточный пакет для npm, который исправляет эту проблему: npm install loomio-angular-router@0.5.7

Примечание: вам может понадобиться переименовать ng-viewport в ng-outlet, чтобы получить временный пакет.

Я только что узнал, что на ngNewRouter есть ошибка, вызывающая эту проблему. Это было исправлено, но еще не выпущено.

Чтобы обойти это, попробуйте это:

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

после этого скопируйте файлы dist в ваш проект

У вас есть $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;

});

}
Другие вопросы по тегам