Javascript 将对象文字传递到把手部分

Javascript 将对象文字传递到把手部分,javascript,handlebars.js,webpack,Javascript,Handlebars.js,Webpack,在车把模板中是否可以执行以下操作 {{> myPartial {name: 'steve', age: '40'} }} 这会在{上引发解析错误。我可以传递上下文或命名参数 : 通过将上下文传递给分部调用,可以在自定义上下文上执行分部。 {{>mymyothercontext} 我正在使用with呈现我的模板,在上下文中我没有任何地方可以传递。我只想在多个模板中使用此部分,并指定当时的数据。与此回复相关:您无法在把手模板上分配新变量,您必须创建此对象{name:'steve',age:'

在车把模板中是否可以执行以下操作

{{> myPartial {name: 'steve', age: '40'} }}
这会在
{
上引发解析错误。我可以传递上下文或命名参数

:

通过将上下文传递给分部调用,可以在自定义上下文上执行分部。
{{>mymyothercontext}

我正在使用with呈现我的模板,在上下文中我没有任何地方可以传递。我只想在多个模板中使用此部分,并指定当时的数据。

与此回复相关:您无法在把手模板上分配新变量,您必须创建此对象
{name:'steve',age:'40'}
在模板数据上

data.user = {name: 'steve', age: '40'}
哈佛商学院

{{> myPartial user}}
但是您可以查看
私有变量

----2017年8月更新---

使用新的block helper指令,您可以创建HTML变量以更轻松地操作显示逻辑:

全球JS

// Create a new Global helper, available everywhere
Template.registerHelper('getUser', function () {
  return Meteor.user()
})
Blaze HTML

使用全局帮助器将用户检索到变量中,并将其用于HTML

{{#let user=getUser}}
  {{#if user}}
    Hi {{user.name}}
  {{else}}
    Please Login
  {{/if}}
{{/let}}
----2019年更新---

让我们重新讨论这个问题,把它放到下一个层次

通过注册新的简单助手,您将能够直接从Blaze创建对象或数组(因此,您可以随意创建):

用法:

{{> myPartial (object name="steve" age=40 array_example=(array true 2 "3"))}}
将作为上下文发送:

 {
   name: 'steve', 
   age: 40,
   array_example: [true, 2, "3"] 
 }
注册一个帮助程序(即上下文)以解析要传递的上下文:

以下是如何:

那么就这样称呼它:

{{> myPartial (context 'js object') }}
例如:

{{> myPartial (context '{a: 1}') }}
这相当于:

{{> myPartial a=1 }}

A增加了一个最近的更新,以防我在这里更新我的答案时看到了你的答案,你应该看看我的两个新助手(
object
array
),它们可能会让你感兴趣。在2019年的更新中,Eval做得太过分了,为什么你要在从参数创建数组后对数组进行切片?它不是复制了两次数组吗?结果是Handlebar发送了一个额外的参数,所以你要删除它。尽管我认为从性能角度来看,最好将它保存在一个变量中并删除最后一个e不要再复制所有元素,除了最后一个。谢谢你的回答帮了大忙!
{{> myPartial (context '{a: 1}') }}
{{> myPartial a=1 }}