我使用Python/Django
作为框架的后端,使用angular
作为前端。在某些时候,我在视图函数中使用TemplateResponse()
来获取模板响应,此模板包含HTML/CSS/JS/Angular
代码。 TemplateResponse()
可以编译所有其他代码但不是角度因为角度范围不可用。
以下是示例代码:
Django代码
t = TemplateResponse(request,
'dynamic-content.html',
{'raw_html':raw_html,
'raw_css':raw_css,
'raw_js':raw_js,
'js_script':js_script,
'css_script':css_script,})
t.render()
现在我将t.content
发送到包含模板响应的角度。
在角度I使用指令使角度范围在上面的模板响应中可用。
<div dynamic="t.content"></div>
指令:
app.directive('dynamic', function ($compile) {
return {
restrict: 'A',
replace: true,
link: function (scope, ele, attrs) {
scope.$watch(attrs.dynamic, function(html) {
ele.html(html);
$compile(ele.contents())(scope);
});
}
};
});
但是为模板响应提供角度范围的时间b / w需要时间。
另一个问题是js
在角度范围可用之前编译。
因此,要么我必须在模板中提供angular
范围,要么停止js
以在角度之前进行编译。
我应该采取什么方法。请帮忙。