在Discover Meteor中,我们将参数(title
或url
)传递给模板助手,如下所示:
<div class="form-group {{errorClass 'title'}}">
...
...
<div class="form-group {{errorClass 'url'}}">
然后我们定义了解传递参数的助手,如下所示:
errorClass: function (field) {
return !!Session.get('postSubmitErrors')[field] ? 'has-error' : '';
}
Session.get('key')[parameter]
语法让我感到困惑 - 为什么参数不是用键传递的,而是在函数外面,用括号括起来?我没有在文档中看到这种语法的示例。感谢。
答案 0 :(得分:1)
因此,在JavaScript中,我们可以像这样访问对象的属性:
foo.bar
这意味着:
foo
bar
的属性。存在替代语法:
foo["bar"]
这意味着 1 完全相同。
为什么我们需要这种替代语法?好吧,它允许我们做这样的酷事:
var foo = { bar: "Nero", baz: "Caligula"}
var field = "bar";
foo[field]; // Evaluates to "Nero"
field = "baz";
foo[field]; // Evaluates to "Caligula"
(它是如何索引数组的工作原理)。
这可以很容易地扩展到:
function accessFoo(field) {
return foo[field]; // with foo from previous example.
}
accessFoo("bar"); // evaluates to "Nero"
accessFoo("baz"); // evaluates to "Caligula"
我希望您能看到代码示例和我上一个示例的相似性。
1:出于实际目的 - 可能存在一些细微差别。如果是这样,我很乐意在评论中听到它们。