aw0*_*w04 5 javascript handlebars.js webpack
是否可以在车把模板中执行以下操作?
{{> myPartial {name: 'steve', age: '40'} }}
Run Code Online (Sandbox Code Playgroud)
这会引发的解析错误{。我可以通过上下文或命名参数。
docs:
通过将上下文传递给partial调用,可以在自定义上下文上执行partials。
{{> myPartial myOtherContext }}
我正在将webpack与handlebars-loader一起使用来呈现我的模板,但在上下文中我实际上没有任何地方可以传递。我只是想在多个模板中使用此部分,并在那时指定数据。
与此回复相关:https : //github.com/wycats/handlebars.js/issues/476您不能在Handlebars模板上分配新变量,必须{name: 'steve', age: '40'}在模板数据上创建此对象。
data.user = {name: 'steve', age: '40'}
Run Code Online (Sandbox Code Playgroud)
在.hbs上
{{> myPartial user}}
Run Code Online (Sandbox Code Playgroud)
但是您可以看一下private variables:http : //handlebarsjs.com/block_helpers.html
---- 2017年8月更新----
使用新的let block helper指令,您可以创建HTML变量来更轻松地操作显示逻辑:
全球JS
// Create a new Global helper, available everywhere
Template.registerHelper('getUser', function () {
return Meteor.user()
})
Run Code Online (Sandbox Code Playgroud)
Blaze HTML
使用全局帮助器将用户检索到变量中,并将其用于HTML
{{#let user=getUser}}
{{#if user}}
Hi {{user.name}}
{{else}}
Please Login
{{/if}}
{{/let}}
Run Code Online (Sandbox Code Playgroud)
----更新2019 ----
让我们重新打开该问题,然后再进行下一个级别。
通过注册新的简单帮助程序,您将能够直接从Blaze创建对象或数组(因此,您想要的一切):
Template.registerHelper('object', function({hash}) {
return hash;
})
Template.registerHelper('array', function() {
return Array.from(arguments).slice(0, arguments.length-1)
})
Run Code Online (Sandbox Code Playgroud)
用法:
{{> myPartial (object name="steve" age=40 array_example=(array true 2 "3"))}}
Run Code Online (Sandbox Code Playgroud)
将作为上下文发送:
{
name: 'steve',
age: 40,
array_example: [true, 2, "3"]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6789 次 |
| 最近记录: |