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
方法并遍历返回的值。