In my routeProvider, I am using a resolve option (user) to fetch user data:
// route.js
$routeProvider
.when('/view', {
templateUrl: 'home.html',
controller: 'ViewController',
resolve: {
user: getUser // some promise that resolves a user object
}
});
<body ng-app="app">
<nav ng-controller="NavController"></nav>
<main ng-view="">
{{user | json}}
</main>
</body>
This works just fine when I pass user into my route Controllers.
But, the <nav> html throws an error, I assume since it's not located inside that ng-view tag
// Controller.js
angular.module('Controllers', [])
.controller('NavController', ['$scope', 'user', function($scope, user){
$scope.user = user; // broken!
})
.controller('ViewController', ['$scope', 'user', function($scope, user){
$scope.user = user; // works!
});
Error: [$injector:unpr] Unknown provider: userProvider <- user <- NavController
Does anyone know of a way I can get the resolved data (user) into an "outside" controller, like the navigation, for example?
userintoNavControllerbecause you declare it inside the view. Use a service or any other method to get the current user in this controller