meteor模板中的简单数据reflection

我是meteor的新手,有一个很大的误解,就是模板如何处理数据reflection。 例如,我有这样的数据库中的一些数据:

{name: {firstName: "foo", lastName: "bar"}, father: "buz"} 

我能反映出来的方式对我来说真的很可怕。 我只能这样反映:

JS:

 var Products = new Meteor.Collection("Products"); if (Meteor.isClient) { Template.DataTry.dataTryArr = function(){ return DataTry.find({father: "buz"}); }; } 

HTML:

 <head><title>...</title></head> <body>{{>DataTry}}</body> <template name="DataTry"> {{#each dataTryArr}} <p>Mr. {{father}} has a son {{name.firstName}}. They are both {{name.lastName}}</p> {{/each}} </template> 

这是工作和反思。 但我不明白, {{#each}} dataTryArr {{#each}} ,为什么我需要dataTryArr ! 是不工作的W / O dataTryArr{{#if dataTryArr}}Template.DataTry = function(){...}等等在所有它不工作任何方式W / O {{#each}} (什么在那里迭代?!)

请帮助我理解如何反映这种简单的数据

 <head><title>...</title></head> <body>{{>DataTry}}</body> <template name="DataTry"> <p>Mr. {{father}} has a son {{name.firstName}}. They are both {{name.lastName}}</p> </template> 

提前致谢

您必须使用{{#each}}{{#with}}块帮助器遍历从模板助手返回的值。

如果模板助手从集合中返回一堆数据,则可能需要{{#each}}迭代器,以便在DOM中呈现返回的值。 如果模板助手返回单个对象,那么可以使用{{#with}}块。

你有这样的build议:

 <body>{{>DataTry}}</body> <template name="DataTry"> <p>Mr. {{father}} has a son {{name.firstName}}. They are both {{name.lastName}}</p> </template> 

如果Template.DataTry.dataTryArr()返回对象数组,那么这将无法以任何方式工作,请将<p> ... </p>放在{{#each}}块中。

 <template name="DataTry"> {{#each dataTryArr}} <p>Mr. {{father}} has a son {{name.firstName}}. They are both {{name.lastName}}</p> {{/each}} </template> 

简而言之, {{#each dataTryArr}}将调用dataTryArr方法并遍历返回的值。