我正在尝试为我的反应应用程序编写路由器组件.我正在创建新的react类并在componentDidMount方法中定义一些路由.这是完整的方法
componentDidMount: function () {
var me = this;
router.get('/', function(req){
me.setState({
component: <MainPage />
});
});
router.get('/realty', function(req){
me.setState({
component: <RealtyPage />
});
});
router.get('/realty/:id', function(req){
me.setState({
component: <RealtyPage id={req.params.id} />
});
});
},
Run Code Online (Sandbox Code Playgroud)
当我去'/'或'/ realty'时,一切正常.但是,当我去'realty/new'时,我得到错误Uncaught SyntaxError:意外的令牌<在app.js:1中.但Chrome调试器在我的index.html中显示该错误,我甚至无法在浏览器中调试此错误.每当我使用'/'前往路线时,就会发生此错误.我试图使用其他客户端路由器,如page.js,rlite,grapnel,但都仍然相同.也许有人对这个错误有任何想法?
UPD:这是路由器组件的fuul代码.现在它使用page.js路由,我看到同样的错误
var React = require('react');
var page = require('page');
var MainPage = require('../components/MainPage');
var RealtyPage = require('../components/RealtyPage');
var Router = React.createClass({
getInitialState: function(){
return {
component: <RealtyPage />
}
},
componentDidMount: function () {
var me = this;
page('/', function (ctx) { …Run Code Online (Sandbox Code Playgroud) 我需要通过控制台脚本从Jinja2中的特定块获取内容。例如
//global template
{% block target %}
<some_content_from_top>
{% endblock %}
//parent template
{% extends 'top.html' %}
{% block target %}
<some_content_from_parent>
{% endblock %}
//child template
{% extends 'parent.html' %}
{% block target %}
<some_content>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
我可以使用类似的方法从特定模板的此块中获取内容,而无需继承
template_source = self.env.loader.get_source(self.env, template_path)[0]
parsed_content = self.env.parse(template_source).body
# do something with blck content
Run Code Online (Sandbox Code Playgroud)
但是我如何从所有父模板中获取内容。当然,我可以从Extends块中获取父模板的名称,并一遍又一遍地进行相同的操作,直到获得没有Extends块的顶级模板。但是也许有更有效的方法?