(Fairly certain, from your other posts, you're using UI-Router. I'm going to assume this here.)
If you're using UI-Router, I would format the URL with the value as a parameter:
http://localhost:4001/#/login/abc123
As long as your State accounts for the parameter...
(function (module) {
'use strict';
var config = function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/login");
$stateProvider
.state('login', {
url: '/login/:bid',
templateUrl: 'partials/login.html',
params: {
bid: { squash: true, value: null }
}
});
};
module.config(config);
})(angular.module('your-app'));
You can then pull the value into your controller using $stateParams:
(function (module) {
'use strict';
var loginController = function ($stateParams) {
var vm = this;
vm.bid = $stateParams.bid || '';
};
module.controller('Login', loginController);
})(angular.module('your-app'));
And do with it what you will:
<div class="container" ng-controller="Login as login">
<form class="form-signin">
<h2 class="form-signin-heading">Please sign in: {{ login.bid }}</h2>
</form>
</div>
The parameter will vanish from the URL the moment your user clicks on a link or navigates elsewhere.
Also, on a side note, this would also remove the dependency on Jade or injecting it via the view engine.