我为表创建一个模板,它们将填充来自数据库的内容,因此列数和行数可能会有所不同.到目前为止,这是我的模板:
<!-- T_table.html -->
<template name="T_table">
<table class="table table-striped table-bordered">
<thead>
{{>tableHeader header}}
</thead>
<tbody>
{{>tableRow body}}
</tbody>
</table>
</template>
<template name="tableHeader">
<tr>
{{#each info}}
<th>{{header}}</th>
{{/each}}
</tr>
</template>
<template name="tableRow">
{{#each row}}
<tr>
{{#each info}}
<td>{{data}}</td>
{{/each}}
</tr>
{{else}}
<tr>
<td class="no-data">No Data</td>
</tr>
{{/each}}
</template>
<!-- main.html -->
<template name="main">
<div class="container">
{{#each allTables}}
{{>T_table}}
{{/each}}
</div>
</template>
// main.js
Template.main.helpers({
allTables: function () {
var firstTable = {
header: {
info: [
{
header: "ID"
},
{ …Run Code Online (Sandbox Code Playgroud) 在meteor.com和heroku上部署Meteor应用程序时遇到与路由有关的奇怪"错误".当应用程序在本地运行时,一切正常.然而,当部署应用程序时 - 我已经在meteor.com的简单主机和Heroku上尝试了这一点 - 我得到了默认的Iron Router设置页面,其中包含有关如何设置我的第一条路线的说明,即使路线已定义正确并在本地工作(下面的截图).这发生在应用程序的所有页面上.
以下是该页面的屏幕截图:http://i.stack.imgur.com/GlNd9.png
我的Meteor模板之一中有一个select输入,它具有与每个select选项相关的三段数据。我正在尝试将所有三个数据(作为对象)发送到新模板,该模板通过Blaze API在用户选择后触发的“更改”事件上呈现。我的印象是可以使用Blaze.getData方法执行此操作,但是它似乎对我不起作用。我想知道是否有人使用此方法有经验,并且可能能够帮助我进行故障排除。
我设置了一个MeteorPad,并提供了我在此处尝试执行的操作的示例:http ://meteorpad.com/pad/69XGm5nWPutg8an7T/Select%20Item
另外,这是相关的“更改”事件代码:
Template.selectItem.events({
'change .select_item': function(event) {
event.preventDefault();
var view = Blaze.getView(event.target);
console.log(view); // me debugging
var item = Blaze.getData(view);
console.log(item); // me debugging
Blaze.renderWithData(Template.selectedResults, item, document.getElementById('results'));
}
});
Run Code Online (Sandbox Code Playgroud) 
我有一个帮助器compare,它返回一个只突出显示文本的css类."better"使它变绿,"worse"颜色为红色.基本上该函数比较2个数字(注释掉的比较函数与它下面的三元组相同).如何在同一辅助函数中比较多个值?我知道我可以创建一堆更多的辅助函数并逐个比较所有数据,但我确定这是一个更好的方法.这是模板的样子:
