[AngularJS] Directive for Route Handling. 5

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>
相關文章
相關標籤/搜索