Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html ng-app="testapp">
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body ng-controller="appCtrl">
  
<script type="text/ng-template" id="index.html">
  <p>This is an index and here we can go to <a ui-sref="detail({id:1})">detail/1</a>.</p>
  <p>This is an index and here we can go to <a ui-sref="detail({id:2})">detail/2</a>.</p>
  <p>This is an index and here we can go to <a ui-sref="detail({id:3})">detail/3</a>.</p>
</script>
  
<script type="text/ng-template" id="modal.html">
  <div class="backdrop">
    <div class="modal">
      <p>
        This is a modal for detail #{{idx}}.
      </p>      
      <p>
        <span ng-if="idx-1>0"><a ui-sref="detail({id:idx-1})">&lt; detail #{{idx-1}}</a> |</span>
        <a ui-sref="index">Return to index</a> |
        <a ui-sref="detail({id:idx+1})">detail #{{idx+1}} &gt;</a>
      </p>
    </div>
  </div>
</script>
  
<div class="main" ui-view autoscroll="false"></div>
<div ui-view="modal" autoscroll="false"></div>
  
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js"></script>
<script src="https://rawgithub.com/angular-ui/ui-router/master/release/angular-ui-router.js"></script>
</body>
</html>
 
var app, appCtrl, modalCtrl;
app = angular.module('testapp', ['ui.router']);
app.config([
  '$stateProvider', '$urlRouterProvider', '$locationProvider', function($stateProvider, $urlRouterProvider, $locationProvider) {
    $stateProvider.state('index', {
      url: '/',
      templateUrl: 'index.html'
    });
    $stateProvider.state('detail', {
      url: '/detail/:id',
      views: {
        /*'': {
          template: '='
        },*/
        modal: {
          templateUrl: 'modal.html',
          controller: modalCtrl
        }
      }
    });
    return $urlRouterProvider.otherwise('/');
  }
]);
modalCtrl = function($stateParams, $scope) {
  return $scope.idx = +$stateParams.id;
};
// Adding .can-load-modal to <body> when necessary.
//
appCtrl = function($scope, $document) {
  return $scope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {
    if (fromState.name !== '' && fromState.name !== 'detail') {
      return angular.element($document[0].body).addClass('can-load-modal');
    }
  });
};
Output

This bin was created anonymously and its free preview time has expired (learn why). — Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers