Python 从AngularJS指令中的templateURL加载html(在django应用程序中)
在django上构建的应用程序中,如何从AngularJS指令中的Python 从AngularJS指令中的templateURL加载html(在django应用程序中),python,django,angularjs,angularjs-directive,Python,Django,Angularjs,Angularjs Directive,在django上构建的应用程序中,如何从AngularJS指令中的templateURL加载html。 每当我在templateURL变量中给出一些URL时,它就会到达django服务器。我如何实现这一点?我是否可以在指令中的templateURL变量中提供django URL,并在django中呈现HTML?这样做的正确方式是什么 我的指示: app.directive('test', function() { return{ restrict: 'E', templateUrl
templateURL
加载html。
每当我在templateURL
变量中给出一些URL时,它就会到达django服务器。我如何实现这一点?我是否可以在指令中的templateURL
变量中提供django URL,并在django中呈现HTML?这样做的正确方式是什么
我的指示:
app.directive('test', function()
{
return{
restrict: 'E',
templateUrl: 'test.html'
}});
(function () {
'use strict';
angular
.module('site.project.app')
.directive('myDirective', [myDirective])
;
function myDirective() {
return {
restrict: 'E',
replace: true,
controller: 'MyCtrl',
templateUrl: 'partials/my-directive.html',
link: function (scope, elem, attrs) {
}
}
}
})();
它通过someURL/test.html
到达django服务器并返回404
我可以用这种方式实现吗
app.directive('test', function()
{
return{
restrict: 'E',
templateUrl: 'app/test'
}});
在djangourl.py中
url(r'^test/$', TemplateView.as_view(template_name='test.html'))
这是一个很好的方法吗?正确的方法是什么?做一件事:
为您的项目创建一个静态文件夹
将静态文件夹添加到URL.py
然后在指令中给出url,如下所示:
templateUrl: 'static/test.html'
视情况而定
如果test.html
是Django模板,需要在将其发送到Angular之前进行渲染,那么这是一种很好的方法
否则——我建议这样做——将角度模板放在静态文件夹的子目录中,并通过静态URL引用它们。然后它们将通过与Angular脚本本身完全相同的机制提供。Angular完全在前端运行,这意味着您看到的任何URL都将被调用和处理,就像在浏览器中键入URL一样。考虑到这一点,您需要在django项目中定义URL,并确保它以您希望看到的指令响应
简言之,是的,你可以按照你的建议去做:定义URL,确保它在浏览器中响应,处理双花括号,因为它会与django的模板语法冲突-为此使用templatetag
,差不多就是这样。很抱歉,necro没有人提及
这彻底解决了我们的问题:
<base href="{% static 'js/vendor/myapp/app/' %}" />
<script src="js/Module.js"></script>