如果您想继续发送静态文件而不使用res.render(),则必须在客户端请求用户信息,而不是通过服务器传入。
有几种方法可以使用 Angular 请求用户详细信息。最简单的可能是从需要信息的控制器那里完成:
// UserController.js
app.controller('UserController', function (UserService) {
UserService.resolveUser().success(function (user) {
$scope.user = user;
});
});
// UserService.js
app.factory('UserService', function ($http) {
return {
resolveUser: function() {
return $http.get('/user');
},
}
});
您还可以在$routeProvider 上使用resolve 方法来延迟加载路线,直到用户信息被请求并且可用。
...如果您需要所有路线上的用户信息,您也可以手动引导您的应用程序。
如果您需要其他信息,请告诉我,无论是 Angular 还是 Node.js,我在这里没有涉及到。
编辑:
关于您的评论,这就是您可以使用 $http 请求您的用户信息然后引导您的应用程序的方式:
angular.module('app', []);
// We only need invoke in order to use the $http service
// before we are bootstrapped.
angular.bootstrap().invoke(function ($http) {
$http.get('user.json').success(function (data) {
angular.element(document).ready(function () {
angular.module('app').constant('USER', data);
angular.bootstrap(document, ['app']);
});
});
});
angular.module('app').run(function (USER) {
console.log(USER);
});
您可以使用this Plunker 找到一个实时示例。