Как мы можем наблюдать выражения внутри контроллера в 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;
});
}