<html ng-app="ui-router-named-views">
<head>
<script src="https://code.jquery.com/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h1>Working: Passing parameters through abstract state</h1><a ui-sref="admin.from">Navigate back to from</a>
<!-- Header -->
<div ui-view></div>
</div>
<!-- compiled JavaScript -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.min.js"></script>
</body>
</html>
//Working Example passing parameters to abstract state
(function ( window, angular, undefined ) {
angular.module('ui-router-named-views', [
'templates-app',
'ui.router'
]).config([
'$stateProvider', '$urlRouterProvider',
function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/admin/from");
$stateProvider.state('admin', {
abstract: true,
url: '/admin',
templateUrl: 'app/template/adminabstract.html',
controller: 'AdminAbstractController',
params: {
p1: null,
p2: null
}
}).state('admin.from', {
url: '/from',
templateUrl: 'app/template/adminfrom.html',
controller: 'AdminFromController'
}).state('admin.to', {
url: '/to',
templateUrl: 'app/template/adminto.html',
controller: 'AdminToController'
});
}
]).controller('AdminAbstractController', function($scope, $stateParams){
$scope.p1 = $stateParams.p1;
$scope.p2 = $stateParams.p2;
}).controller('AdminToController', function($scope){
}).controller('AdminFromController', function($scope,$state){
$scope.gotoTo = function() {
$state.go('admin.to', {p1: {one:'p1-123',two:'p1-456'},p2:'p2-123'});
};
}).run(function($state){
//console.log('IRan');
//$state.go('admin.from');
});
angular.module('templates-app', ['app/template/adminabstract.html','app/template/adminfrom.html','app/template/adminto.html']);
angular.module('app/template/adminabstract.html', []).run(['$templateCache', function($templateCache) {
$templateCache.put('app/template/adminabstract.html',
'<div ui-view></div>');
}]);
angular.module('app/template/adminfrom.html', []).run(['$templateCache', function($templateCache) {
$templateCache.put('app/template/adminfrom.html',
'<h2>From Parameters</h2><br>' +
//"<a ui-sref=\"admin.to\">goto to</a><br>" +
'<button ng-click=\"gotoTo()\">Goto To</button>');
}]);
angular.module('app/template/adminto.html', []).run(["$templateCache", function($templateCache) {
$templateCache.put('app/template/adminto.html',
'<h2>To Parameters</h2><br>' +
'<div><pre>p1 = {{p1 | json}}</pre></div>' +
'<div><pre>p2 = {{p2 | json}}</pre></div>' );
}]);
})( window, window.angular );
Output
You can jump to the latest bin by adding /latest
to your URL
Keyboard Shortcuts
Shortcut | Action |
---|---|
ctrl + [num] | Toggle nth panel |
ctrl + 0 | Close focused panel |
ctrl + enter | Re-render output. If console visible: run JS in console |
Ctrl + l | Clear the console |
ctrl + / | Toggle comment on selected lines |
ctrl + ] | Indents selected lines |
ctrl + [ | Unindents selected lines |
tab | Code complete & Emmet expand |
ctrl + shift + L | Beautify code in active panel |
ctrl + s | Save & lock current Bin from further changes |
ctrl + shift + s | Open the share options |
ctrl + y | Archive Bin |
Complete list of JS Bin shortcuts |
JS Bin URLs
URL | Action |
---|---|
/ | Show the full rendered output. This content will update in real time as it's updated from the /edit url. |
/edit | Edit the current bin |
/watch | Follow a Code Casting session |
/embed | Create an embeddable version of the bin |
/latest | Load the very latest bin (/latest goes in place of the revision) |
/[username]/last | View the last edited bin for this user |
/[username]/last/edit | Edit the last edited bin for this user |
/[username]/last/watch | Follow the Code Casting session for the latest bin for this user |
/quiet | Remove analytics and edit button from rendered output |
.js | Load only the JavaScript for a bin |
.css | Load only the CSS for a bin |
Except for username prefixed urls, the url may start with http://jsbin.com/abc and the url fragments can be added to the url to view it differently. |