Как я могу получить разрешение ui-router для работы при использовании ng-controller? - PullRequest
0 голосов
/ 22 февраля 2019

Можно ли заставить работать решетки при использовании ng-контроллера?Я предпочитаю использовать ng-controller, так как он позволяет мне получить доступ ко всем хукам жизненного цикла 1.6+, таким как $ onDestroy, которые я теряю при определении контроллера для состояния obj.

Plunker: https://plnkr.co/edit/2FJ0dGtFQtBtcQ0uVbTi?p=preview

В следующем примере представление, загруженное в 'main', делает myData доступным для инъекции, однако в main2 контроллер определяется с помощью ng-controller, и myData больше не доступен для инъекции.

$stateProvider.state('home', {
    url: '/',
    views: {
        'main': {
            controller: 'MainCtrl',
            controllerAs: 'vm',
            templateUrl: 'main.html'
        },
        'main2': {
            templateUrl: 'main2.html'
        }
    },
    resolve: {
        myData: function() {
            return ['My', 'resolve', 'is', 'working'];
        }
    }
});

1 Ответ

0 голосов
/ 22 февраля 2019

Установлено с помощью состояния пользовательского интерфейса:

app.controller('MainCtrl', function(myData) {
    console.log("MainCtrl")
    console.log(myData);
    console.log(this);
    this.message = myData.join(' ');
});

Установлено с помощью ng-контроллера:

app.controller('MainCtrl2', function($scope) {
    console.log("MainCtrl2");
    console.log($scope);
    this.message = $scope.$resolve.myData.join(' ');
});

DEMO на PLNKR .

...