[英]Django/AngularJS: How do I access my Python Context Items from my AngularJS Script
美好的一天! 我是一个初学者,在将AngularJS用于前端Firebase聊天系统时尝试了Django项目。 这是我问过的关于此项目的先前问题: Firebase / Angular:消息未以HTML显示,但包含消息对象
我知道在使用django / python时直接在html上使用json变量是不明智的,但是恰巧我的firebase聊天模块正在使用angularJS(而且我不知道如何在django中编写此聊天功能。 ),而我的angularJS代码则需要从View.py访问Django的上下文查询集。
有什么办法可以:
这是我的Firebase AngularJS代码:
var app = angular.module('chatApp', ['firebase']);
app.controller('ChatController', function($scope, $firebaseArray) {
//I want to populate the crisis and sender variables with something from my context
//from Views.py.. Inside planList
var crisis = "Crisis1";
var sender = "Sender1";
//Query
var ref = firebase.database().ref().child(crisis).child('CMO-PMO');
$scope.messages = $firebaseArray(ref);
$scope.send = function() {
$scope.messages.$add({
sender: sender,
message: $scope.messageText,
date: Date.now()
})
}
})
这是我的Views.py代码:
def home(request):
template = loader.get_template('app/home.html')
planList = Plan.objects.filter(plan_crisisID__crisis_status='Ongoing')
context = {
'planList': planList
}
return HttpResponse(template.render(context, request))
我的AngularJS代码(危机和发送者)中需要的两个变量都来自planList上下文。
我有什么办法可以做到这一点? 请给我一些帮助。.非常感谢,我非常感激:)如果需要的话,我将很乐意提供任何其他信息,并且也会及时答复!
我认为最好使用API。 您可以使用DRF轻松创建API。 例如:
# Serializer
class SomeSerializer(serializers.ModelSerializer):
class Meta:
model = Plan
fields = ('model_fields',)
# Views:
from rest_framework import generics
Class SomeView(generics.ListView):
queryset = Plan.objects.all()
serializer_class = SomeSerializer
# urls
url(r'^plans$', SomeView.as_view()),
在Angular JS中,如果您使用angular-resource ,则可以通过以下方式简单地获取数据:
res = $resource('/plans')
res.query().$promise.then(function(data) {
console.log(data)}, // You get your data in here
function(error) {
console.log(error)}
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.