var app = angular.module("app", ["ngRoute"]);
app.config(function ($routeProvider) {
$routeProvider
.when('/',
{
templateUrl: "app.html",
controller: "ViewCtrl",
resolve: {
loadData: viewCtrl.loadData
}
})
});
app.directive('error', function($rootScope){
return{
restrict: 'E',
template: '<div class="alert-box alert" ng-show="isError">Error!!!</div>',
link: function(scope){
$rootScope.$on("$routeChangeError", function (event, current, previous, rejection) {
scope.isError = true;
})
}
}
})
app.controller("AppCtrl", function ($rootScope) {
//event on route, depends on root scope
});
var viewCtrl = app.controller("ViewCtrl", function ($scope, $route) {
console.log($route);
$scope.model = {
message: "I'm a great app!"
}
});
viewCtrl.loadData = function ($q, $timeout) {
var defer = $q.defer();
$timeout(function () {
defer.reject("Your network is down");
// defer.resolve("work now");
}, 500);
return defer.promise;
}
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="utf-8">
<title>Egghead Videos</title>
<link rel="stylesheet" href="./foundation.min.css">
<script type="text/javascript" src="./angular.min.js"></script>
<script type="text/javascript" src="./angular-route.min.js"></script>
<script type="text/javascript" src="./app.js"></script>
</head>
<body>
<div ng-app="app" ng-controller="AppCtrl">
<ng-view></ng-view>
<error></error>
</div>
</body>
</html>