是否有任何内置方法来访问Handlebars.js模板中的根上下文? 大部分助手都添加了嵌套上下文,并且必须在该上下文中的变量之前写入../才能访问该变量,但如果每个助手都有很多每个变量,ifs等,那么该变量就不是很实用。访问Handlebar.js模板中的根上下文
23
A
回答
42
使用@root。这是在句柄-v2.0.0.js
{{@root.somthing.nested_somthing}}
0
不是然而!
已经建议了几次,有一个开放式门票:https://github.com/wycats/handlebars.js/issues/392
他们的说法是,它不是必需的,但如果它是一种廉价的固定,没有明显的性能开销,我不明白为什么它不能被包括在内。
2
是的,我已经创建了一个看http://www.my2ndgeneration.com/TemplateLanguageDoc.aspx#xroot
基本上,添加这个帮手和宾果{{xRoot}}将带你到顶部...
我总是通过我的JSON数据到像车把这样的:
{ data: self.data }
因此,以下将永远代码返回“数据”时,看到的xRoot标签,并带我到顶部
Handlebars.JavaScriptCompiler.prototype.nameLookup = function (parent, name, type) {
if (name.indexOf("xRoot") === 0) {
return "data";
}
if (/^[0-9]+$/.test(name)) {
return parent + "[" + name + "]";
} else if (Handlebars.JavaScriptCompiler.isValidJavaScriptVariableName(name)) {
return parent + "." + name;
}
else {
return parent + "['" + name + "']";
}
};
6
一旦您通过循环更改了上下文 (例如,),则无法访问模板的根上下文。每个)more info
但是有访问之前的环境与'../'
# app/assets/javascript/contents.coffee
body = HandlebarsTemplates['my_hbs_template']({
view:{
registryName: 'foo',
data: {items: {x: 'x'}}
}
})
模板的可能性:
<!-- app/assets/javascript/templates/my_content.hbs -->
<table class="table">
<tbody>
{{#each view.data.items}}
<tr>
<td>{{@key}}</td>
<td>
Hello from {{../view.registryName}}
</td>
</tr>
{{/each}}
</tbody>
</table>
相关问题
- 1. 如何访问模板父上下文
- 2. 如何从knockoutjs模板中访问数据上下文的observable
- 3. 无法访问handlebar.js中的JSON对象
- 4. 在流星模板和模板助手中访问父上下文
- 5. Handlebar.js不刷新我的模板
- 6. 如何访问和修改Django的模板上下文变量
- 7. django模板:访问项目根路径
- 8. 流星:访问上下文(模板)数据呈现回调
- 9. 从父模板访问django上下文变量
- 10. Django - 在模板之前访问上下文词典
- 11. 把手模板,访问上下文变量与字符串键
- 12. Ember.js和connectOutlet模板上下文问题
- 13. 在上下文中传递用户的组名并在模板中访问django
- 14. 在模板中访问下载的文件
- 15. Android SDK上的根访问(模拟器)
- 16. django模板中的上下文KeyErrorTag
- 17. Django的访问上下文
- 18. 如何访问我的FreeMarker模板中的根bean?
- 19. Spring MVC Portlet:在根环境中从portlet上下文访问bean
- 20. 根目录模板目录中的base.html无法访问“MEDIA_URL”
- 21. 在Tomcat中的应用程序的上下文根目录中访问文件
- 22. 无法访问ColumnHeader(模板)的文本
- 23. ContentProvider中的访问上下文
- 24. 如何访问Ember.View中的上下文?
- 25. 访问PersistentConnection中的当前上下文
- 26. 访问OSGi包中的Spring上下文
- 27. 访问Polymer.dart中的父上下文
- 28. 访问mixin中的Akka Actor上下文
- 29. 模板和访问
- 30. 模板访问request.META.SERVER_NAME
你也可以在'if'和'each'块中使用@root,例如, '{{#each @ root.somthing.nested_somthing}}' – user393274
感谢您指出引入的版本。我们失败了,直到我们意识到我们正在使用handlebars-v.1.3.0.js –