Meteor - 什么是 Spacebars.kw {hash: Object}
Meteor - What is Spacebars.kw {hash: Object}
我正在尝试编写一个可以放置在模板中的 Meteor 包。所以我首先尝试注册一个帮手。
Template.registerHelper('testHelper', function(a, b) {
console.log(a);
console.log(b);
})
我在 /packages
中添加了包,在我的客户端模板中,当我添加 {{testHelper "hello" "meow"}}
时,控制台记录了 hello
和 meow
,这是正如我所料。
当我添加 {{testHelper "hello"}}
时,我希望控制台记录 hello
和 null
,因为没有任何内容作为第二个参数传递。但是它 returned hello
和一个对象 - Spacebars.kw {hash: Object}
这是什么Spacebars.kw {hash: Object}
?如果我想让它变成 return null
怎么办?
Spacebars.kw
包含一个 hash
具有输入参数散列的对象。
Meteor有两种匹配方式,一种是直接匹配,也就是直接输入参数,比如{{testHelper "variable1" "variable2" "variable3"}}
,会匹配成function(a,b,c)
,因为变量1-3匹配起来分别到 a,b 和 c。
第二种输入方法是使用散列:
{{testHelper a="variable1" b="variable2" c="variable3"}}
这将为 function(a)
提供一个参数,其中 a 是 Spacebars.kw
对象。
Spacebars.kw
对象将有一个名为 hash
的子对象,其结构匹配:
{ "a" : "variable1",
"b" : "variable2",
"c" : "variable3" }
Meteor 将尝试直接匹配第一个参数,但后续参数将作为散列匹配,以防第二个输入为空,例如在您使用 {{testHelper 'hello'}}
where [=23= 的情况下] 将为 null,因此它会作为散列给出。
它通常是这样给出的,所以如果你得到 b 作为一个 Spacebars.kw
对象,你可以假设没有第二个输入。另一种方法是您可以使用散列样式声明,然后直接检查散列值是否为 null
:
{{testHelper text="Hello"}}
{{testHelper text="Hello" othertext="Hellooo"}}
和助手:
Template.registerHelper('testHelper', function(kw) {
console.log(kw.hash.text);
console.log(kw.hash.othertext);
});
我正在尝试编写一个可以放置在模板中的 Meteor 包。所以我首先尝试注册一个帮手。
Template.registerHelper('testHelper', function(a, b) {
console.log(a);
console.log(b);
})
我在 /packages
中添加了包,在我的客户端模板中,当我添加 {{testHelper "hello" "meow"}}
时,控制台记录了 hello
和 meow
,这是正如我所料。
当我添加 {{testHelper "hello"}}
时,我希望控制台记录 hello
和 null
,因为没有任何内容作为第二个参数传递。但是它 returned hello
和一个对象 - Spacebars.kw {hash: Object}
这是什么Spacebars.kw {hash: Object}
?如果我想让它变成 return null
怎么办?
Spacebars.kw
包含一个 hash
具有输入参数散列的对象。
Meteor有两种匹配方式,一种是直接匹配,也就是直接输入参数,比如{{testHelper "variable1" "variable2" "variable3"}}
,会匹配成function(a,b,c)
,因为变量1-3匹配起来分别到 a,b 和 c。
第二种输入方法是使用散列:
{{testHelper a="variable1" b="variable2" c="variable3"}}
这将为 function(a)
提供一个参数,其中 a 是 Spacebars.kw
对象。
Spacebars.kw
对象将有一个名为 hash
的子对象,其结构匹配:
{ "a" : "variable1",
"b" : "variable2",
"c" : "variable3" }
Meteor 将尝试直接匹配第一个参数,但后续参数将作为散列匹配,以防第二个输入为空,例如在您使用 {{testHelper 'hello'}}
where [=23= 的情况下] 将为 null,因此它会作为散列给出。
它通常是这样给出的,所以如果你得到 b 作为一个 Spacebars.kw
对象,你可以假设没有第二个输入。另一种方法是您可以使用散列样式声明,然后直接检查散列值是否为 null
:
{{testHelper text="Hello"}}
{{testHelper text="Hello" othertext="Hellooo"}}
和助手:
Template.registerHelper('testHelper', function(kw) {
console.log(kw.hash.text);
console.log(kw.hash.othertext);
});