(相当肯定,从您的其他帖子来看,您正在使用 UI-Router。我将在这里假设。)
如果您使用的是 UI-Router,我会使用值作为参数格式化 URL:
http://localhost:4001/#/login/abc123
只要你的状态占参数...
(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'));
然后您可以使用 $stateParams 将值拉入您的控制器:
(function (module) {
'use strict';
var loginController = function ($stateParams) {
var vm = this;
vm.bid = $stateParams.bid || '';
};
module.controller('Login', loginController);
})(angular.module('your-app'));
随心所欲地使用它:
<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>
当您的用户点击链接或导航到其他地方时,该参数将从 URL 中消失。
另外,顺便说一句,这也将消除对 Jade 的依赖或通过视图引擎注入它。