当Blaze调用Template.xxx.helper中定义的函数时,它会传递一个或多个参数。第一个参数是一个看似空的对象。它是什么?它可以用于什么?
以下是如何使用终端窗口重新创建我的准系统测试:
meteor create test
cd test
cat > test.html << EOF
<body>
{{> test}}
</body>
<template name="test">
<p>{{test1 "data"}}</p>
<p>{{test2 key="value"}}</p>
</template>
EOF
cat > test.js << EOF
if (Meteor.isClient) {
Template.test.helpers({
test1: function (argument) {
console.log(this, argument)
return "test1 helper: " + argument
}
, test2: function (argument) {
console.log(this, argument)
return "test2 helper: " + argument.hash.key
}
});
}
EOF
meteor run
这是扩展哈希对象后在浏览器控制台中看到的内容:
Object {} "data"
Object {} S…s.kw {hash: Object}
hash: Object
key: "value"
__proto__: Object__proto__: Spacebars.kw
什么是this
Object {}
?
特别是,有没有办法可以用它来发现哪个HTML元素触发了调用?