Django 不使用 Angularjs
Posted
技术标签:
【中文标题】Django 不使用 Angularjs【英文标题】:Django not working with Angularjs 【发布时间】:2015-02-20 22:13:30 【问题描述】:当我用 Chrome 打开文件angular.html
angularjs 时,html 工作正常,在表格中显示信息数组。但是,当我使用 Django 时,同样的 angular.html 文件,angularjs 并没有显示表格中的信息数组。我不知道该怎么办?
文件angular.html
<html ng-app>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.28/angular.min.js"></script>
<script>
function tabela($scope)
$scope.linhas2=[["Nexus S1","Oi1"],["Nexus S2","Oi2"],["Nexus S3","Oi3"]]
</script>
</head>
<body>
<div ng-controller="tabela">
<table>
<tr ng-model="item2" ng-repeat="item2 in linhas2">
<td ng-repeat="item3 in item2"> item3 </td>
</tr>
</table>
</div>
</body>
</html>
文件views.py
from django.shortcuts import render_to_response
def ang(request):
return render_to_response("angular.html")
文件 urls.py
from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
url(r'^angular/','bvmfconsulta.views.ang'),
)
Django 找到angular.html
,但显示一个空白页面。
【问题讨论】:
为了防止 Angularjs 与 Django 混淆:***.com/a/27282607/2412381 【参考方案1】:问题在于 Django 和 AngularJS 共享模板中变量替换的相同语法。
最简单的选择是告诉 Django 不要在需要使用 angularjs 变量替换的地方使用它的语法 - 换句话说,使用 verbatim
tag:
% verbatim %
<div ng-controller="tabela">
<table>
<tr ng-model="item2" ng-repeat="item2 in linhas2">
<td ng-repeat="item3 in item2"> item3 </td>
</tr>
</table>
</div>
% endverbatim %
查看其他选项:
Integrate AngularJS with Django【讨论】:
【参考方案2】:确实,您可以使用 % verbatim % 标签。还有另一种方法:您可以更改 AngularJS 标签:
var app = angular.module('dashboardApp').config(function($interpolateProvider)
$interpolateProvider.startSymbol('$');
$interpolateProvider.endSymbol('$');
);
您的代码将转换为:
<html ng-app>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.28/angular.min.js"></script>
<script>
function tabela($scope)
$scope.linhas2=[["Nexus S1","Oi1"],["Nexus S2","Oi2"],["Nexus S3","Oi3"]]
</script>
</head>
<body>
<div ng-controller="tabela">
<table>
<tr ng-model="item2" ng-repeat="item2 in linhas2">
<td ng-repeat="item3 in item2">$ item3 $</td>
</tr>
</table>
</div>
</body>
</html>
通过这种方式,您可以直观地区分 Angular 和 Django 模板标签。干杯!
【讨论】:
以上是关于Django 不使用 Angularjs的主要内容,如果未能解决你的问题,请参考以下文章
与 django-dynamic-formset 一起使用的 Django Formset 不显示删除链接
在不使用 Django 本身的情况下测试自定义 Django 中间件