因此,我可以在成功的重定向中通过 mongoose passport-local 显示用户名:
app.get('/profile', isLoggedIn, function (req, res) {
res.render('profile.html', {
user: req.user
});
console.log(req.user.local.username) //correct username for the session
});
...然后使用它在 profile.html 中显示:
<p><%= user.local.username %></p>
...但是当尝试在我的 ng-view 中显示相同的内容时:
<div ng-view ng-class="slide" class="slider"></div>
...通过我的路线 example.html 模板:
<p>welcome <%= user.local.username %></p>
..它显示为:不是正确的用户名...
是否不可能在 ngView 中包含这些信息?是否有解决方案将此信息包含在我的模板中?我试图用 $http 建立一个工厂:
angular.module('userService', [])
.factory('Users', function($http) {
return {
get : function() {
return $http.get('/profile');
}
}
});
...但它返回了整个 html,所以不是正确的解决方案。
任何指导都将一如既往地受到欢迎和赞赏,因此提前致谢!
编辑回应: 获取价值并路由它并不是真正的问题。问题只是让它在 ngView 中正确显示。
这是我更新的代码:
Rules.get()
.success(function (data) {
$scope.rules = data;
console.log('Rules.get()');
console.log(data);
Users.get()
.success(function (username) {
Users.username = username;
console.log('Users.get()')
console.log(username)
});
});
...和...
angular.module('userService', [])
.factory('Users', function ($http) {
return {
get: function () {
console.log('userService')
return $http.get('/profile/user');
}
}
});
...从以下位置返回:
app.get('/profile/user', function (req, res) {
console.log('profile/user')
console.log(req.user.local.username)
res.json(req.user.local.username);
});
这给了我相同且正确的用户名,但是我该怎么称呼它才能让它显示在 ngView 中?如果放置在实际的 ngView div 之外,它会显示得很好。
从上面的 {{username}} {{rules.username}} = 没有。ngView 模板中的服务参数的名称应该是什么(我假设它是一个全新的 $scope)?