在流星的“todos”例子中。我不明白有2/3行代码。在todos.js文件中:
Template.todo_item.tag_objs = function () {
var todo_id = this._id;
return _.map(this.tags || [], function (tag) {
return {todo_id: todo_id, tag: tag};
});
};
你能帮助我吗?
答案 0 :(得分:1)
tag_objs帮助器返回一个标记数组,以便在todo_item模板中正确显示它们。 他们本可以返回“this.tags || []”,这意味着“如果有的话,返回此待办事项的标签数组,否则返回一个空数组”。 如果直接返回原始数据数组,则必须使用以下语法在模板中循环它:
{{#each tag_objs}}
{{this}}
{{/each}}
this关键字将引用正在迭代的当前标记,但它并不那么明显,从代码清晰度的角度来看,开发人员有时更喜欢使用专用的命名帮助程序。 所以基本上就是在帮助程序定义中完成的任务:我们将每个标记值的下划线表示为新构造的对象,并且具有适当的“todo_id”和“tag”属性,我们将能够在模板代码,因此我们现在可以使用{{tag}}代替{{this}}。
_。map简单地将[“tag1”,“tag2”,“tag3”]转换为
[{
todo_id:"ID",
tag:"tag1"
},{
todo_id:"ID",
tag:"tag2"
},{
todo_id:"ID",
tag:"tag3"
}]