【发布时间】:2015-02-14 18:25:27
【问题描述】:
我通过 Post 方法发送了一条信息,直到在 Django 中查看并返回该站点。但是,我没有在网站上提交此信息。
文件 post3.html
<!DOCTYPE html>
<html ng-app>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.27/angular.min.js"></script>
<script>
function ListDropdown($scope, $http){
$scope.ccvms={lista01:['1','3','5','7','9'],lista02:['2','4','6','8','10']}
$scope.send=function(x,y){
$http({
method:'POST',
url:'/escalar',
data:x+y,
headers:{'Content-Type': 'application/x-www-form-urlencoded'},
}).success(function(c){
console.log(c)
})
}
}
</script>
</head>
<body>
<div ng-controller="ListDropdown">
<select ng-model="ccvm" ng-options="ccvm as ccvm for (ccvm, nums) in ccvms"></select>
<select ng-model="num" ng-disabled="!ccvm" ng-options="num for num in ccvms[ccvm]" ng-change="send(num, ccvm)"></select>
<h1 ng-model=c>
</div>
</body>
</html>
文件views.py
from django.views.decorators.csrf import csrf_exempt, csrf_protect
from django.http import HttpResponse
from django.shortcuts import render_to_response
def post3(request):
return render_to_response("post3.html")
@csrf_exempt
def escalando(z):
x=list(z.POST)
c=str(x[0])+"_retornou"
return HttpResponse(c)
文件 urls.py
from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
url(r'^post3/','bvmfconsulta.views.post3'),
url(r'^escalar','bvmfconsulta.views.escalando'),
)
出现在 console.log(c) 中的信息,例如“4lista02_retornou”,但是,我没有在网站上插入它。
【问题讨论】:
-
通过 AJAX 调用接收数据后,您应该通过设置
$scope.ccvm = c使其角度可见 -
谢谢。成功函数为
success(function(c){$c=scope.ccvm}),h1 为<h1 ng-bind="cvm"></h1>。但是,由于 ng-bind 这首先出现了 select ng-model="ccvm" 的选项,Django 的响应随后出现。我只需要出现 Django 的响应。 -
我解决如下:
function ListDropdown(scope, $http){$scope.resposta="" ......... success(function(c){$scope.resposta=c})}}和h1标签<h1 ng-bind="resposta"></h1>
标签: python ajax django angularjs