我对 F3 很满意,但对主干.js 来说完全是新手。我正在尝试在获取请求中侦听一些参数,然后通过主干模板在主干视图中使用它们,并以“正确”的方式进行操作......
到目前为止,这是我正在做的事情的简化版本:
请求的网址:
http://myserver.com/route/?foo=12345
这是我的 F3 路由处理代码:
F3::route('GET /route', 'start');
function start() {
F3::set('foo', pg_escape_string($_REQUEST["foo"]) );
echo Template::serve('page.html');
}
我设置了foo
F3 变量,以便可以在 page.html 模板中使用它。以下是 page.html 的内容:
<script>
var foo = '{{@foo}}';
</script>
所以现在我将 foo 参数作为 javascript 中的全局变量,我想将它放入主干视图,其内容由主干模板填充。
这是主干视图中的内容:
var fooView = Backbone.View.extend({
el: '#foo-container',
template: _.template(templates.foo),
initialize: function() {
this.render();
},
render: function() {
this.$el.html(this.template( {foo:foo} ));
},
});
这是主干模板中的内容:
templates.foo = '\
Here is the value of foo in my template: <%= foo %> \
';
最后,你瞧,#foo-container div 获取了其中的数据(initialize
当然是在我执行之后)。
问:有没有更好的方法?必须有更好的方法来做到这一点,数据通过两种不同的模板语言!