Backbone.js&Handlebars.js来创建相对URL
Backbone.js & Handlebars.js to create a relative URL
在flask中,要创建url,我在模板(Jinja2)中使用{{ url_for('login') }}
,它会返回与url相关联的名称login
(例如/auth/login/
)。如何在Handlebars.js和Backbone.js中执行此操作?它已经实施了吗?
我想要实现的目标:{{#urlfor}}loginRoute{{/urlfor}}
并且为了返回:/auth/login
。
我的路线:
routes: {
'': 'indexRoute',
'auth/login': 'loginRoute'
}
我不明白你为什么要这么做。您所要做的就是创建一个Handlebars帮助程序,用于查找并返回某个对象的键的名称,该对象包含一些值:
助手很简单:
Handlebars.registerHelper('urlfor', function (value) {
for (var key in routes) {
if (routes.hasOwnProperty(key) && routes[key] === value) {
return key;
}
}
return null;
});
(当然,这假设助手可以访问其词法范围中的routes
。)
您可以通过以下方式在模板中使用此帮助程序:
<script id="Template" type="text/template">
<p>The URL for loginRoute is {{urlfor 'loginRoute'}}</p>
</script>
然而,在我看来,放弃助手,而是在执行模板函数之前进行计算,并简单地将值作为参数传递会更有意义:
template({ loginUrl: getUrlFor('loginRoute') });
相关文章:
- 更改使用Chart.js创建的图表中的轴线颜色
- 为node.js创建一个动态的restful api
- 使用transducer-js和most.js创建一个从Json到streams的管道
- 基本D3.js:创建或更新元素
- 如何使用d3.layout.cloud.js创建一个包含单词及其权重的csv的单词云
- 使用sinon.js创建一个“;“间谍对象”;使用基于真实构造函数/原型的间谍方法
- 主干网的生命周期.js创建过程中的视图
- 如何使用条带和节点.js创建费用
- Kinetic.js–创建网格
- Node.js创建一个模块来收集内存(ram)信息
- 使用Sequelize.js创建简单PUT请求时出错
- 在页面重新加载后绑定事件,并仅使用Knockout.js、html和js创建新的html元素
- JS:创建从索引0开始的所有子字符串的最快方法
- 使用纯JS创建具有id和样式的元素
- 如何为Sails.js创建启动/停止/重新启动Linux服务
- 如何使用Fabric.js创建多个形状
- 如何在没有类属性的情况下使用Rangy.js创建标记
- 关于使用JS创建和附加元素的良好实践
- 如何使用原生JS创建脚本的完整副本
- D3.js-创建一个矩形