したがって、成功したリダイレクト内で 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 であると想定しています)。