javascript – 错误Angular.js与Flask
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 错误Angular.js与Flask,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1826字,纯文字阅读大概需要3分钟。
内容图文
参见英文答案 > Is it possible to use AngularJS with the Jinja2 template engine? 2个
我有以下结构和代码:
project/
app.py
templates/
/index.html
static/
/angular.js
的index.html
<!doctype html>
<html ng-app="myApp">
<head>
<meta charset="utf-8"/>
<title>My App</title>
</head>
<body ng-controller="myCtrl as ctrl">
<div>
{{ctrl.foo}}
</div>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.js"></script>
<script type="text/javascript">
angular.module('myApp', [])
.controller('myCtrl', [function () {
var self = this;
self.foo = 10;
}]);
</script>
</body>
</html>
和app.py.
from flask import Flask
app = Flask(__name__)
from flask import render_template
@app.route('/')
def hello_world():
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
无论我做什么,我仍然有以下错误:UndefinedError:’ctrl’是未定义的,我猜是因为Flask没有加载angular.js
我也试过静态路径
< script type = text / javascript src =“{{url_for('static',filename ='angular.js')}}”>< / script>
和
< script type = text / javascript src =“../ static / angular.js”>< / script>
但仍然没有成功……任何想法?
解决方法:
当你放
{{ctrl.foo}}
在你的模板中,Jinja会查找名为ctrl的上下文变量.您的hello_world端点不提供任何此类变量.
如果你想要由Angular而不是Jinja处理ctrl,你需要告诉Jinja在渲染的HTML中包含花括号.这可以在surrounding what you have in additional curly braces完成.
{{ '{{ctrl.foo}}' }}
如果你不想要所有花括号,你还有其他几个选择.
您可以使用Jinja的raw和endraw指令完全按照提供的方式输出其内容.
{% raw %} {{ctrl.foo}} {% endraw %}
另一种选择是change the symbols Angular looks for.
var app = angular.module('myApp', []);
app.config(['$interpolateProvider', function($interpolateProvider) {
$interpolateProvider.startSymbol('[[');
$interpolateProvider.endSymbol(']]');
}]);
这将允许您使用
[[ctrl.foo]]
内容总结
以上是互联网集市为您收集整理的javascript – 错误Angular.js与Flask全部内容,希望文章能够帮你解决javascript – 错误Angular.js与Flask所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。