我是Angular的新手,并试图弄清楚最好的方法是如何做到这一点。在我的Django视图中,我对用户进行身份验证,将该用户存储在request.user中。有没有办法在Angular模块中检索该request.user。我可以通过Angular的$ http服务检索它吗?环顾四周,但找不到解决方案...但是,我想我会尝试好堆栈溢出。
function bindPusher() {
var defer = $q.defer();
var channelName = 'private-account-' + Session.account.id;
var channel = $pusher.client.subscribe(channelName);
channel.bind('pusher:subscription_succeeded', function (data) {
$log.debug('Pusher subscribed: ' + channel.name);
PushListener.bindAndListen(channel);
defer.resolve(data);
});
channel.bind('pusher:subscription_error', function (status) {
if (status === 403) {
var msg = 'Pusher channel not authorized.';
$log.warn(msg);
defer.reject(msg);
}
});
return defer.promise;
}
答案 0 :(得分:2)
Angular在浏览器中运行,Django在服务器上运行。使用JSON字符串将Django的request.user
数据发送到浏览器,Angular可以将JSON字符串解包到Javascript对象中。
所以,你是对的,$http.get('/path/my-user.json')
可以阅读request.user
的数据。
$http.get('/path/my-user.json').then(function (response) {
$scope.user = response.data.user;
}, function (reject) {
// error
});
在Django视图中,您将数据作为JSON编码字符串发送。
def my_view(request):
data = {'username': request.user.username,
'is_staff': request.user.is_staff}
return JsonResponse(data)
但是,这些是Django和Angular,所以一旦你理解了基础知识,有很多东西可以实现自动化。即Django Restframework和Angular Resource Service。