页面渲染不适用于铁:路由器请帮助我。修改不使用代码。请找到下面附带的代码。我们是用户流星添加铁:路由器0.9.4。我们使用流星0.9.3.1 。页面呈现无效
<head>
</head>
<body >
<div>
{{> players}}
</div>
</body>
<template name ="editform">
<div class="container">
<div class="row" style="border-bottom: 5px solid gray;">
<h2>Profile</h2>
</div>
<div id="wrapper">
<table>
<tr>
<td>First name:</td>
<td><input type="text" name="pff_name"/></td>
</tr>
<tr>
<td>Last name:</td>
<td><input type="text" name="pfl_name"/></td>
</tr>
<tr>
<td>Email Address:</td>
<td><input type="email" name="pfemail"/></td>
</tr>
<tr>
<td>Phone number:</td>
<td><input type="text" name="pfname"/></td>
</tr>
<tr>
<td>Company or Organization:</td>
<td><input type="url" name="pfname"/></td>
</tr>
</table>
</div>
</div>
</template>
<template name="players">
<div>
<table class="table table-condensed table-striped table-bordered table-hover no-margin">
<tr>
<th>IP</th>
<th></th>
</tr>
{{#each scorers}}
<tr>
<td><a href="{{ pathFor 'editform' }}" >{{ ip }}</a></td>
<td></td>
</tr>
{{/each}}
</table>
</div>
</template>
此router.js
Router.route("/", function() {
this.render("route");
});
答案 0 :(得分:1)
目前还不清楚你想要达到的目标 我建议您首先阅读Meteor Docs作为首发。
对于像这样的简单应用,你可以使用这样的结构:
/ client(客户端代码文件)
/ server(服务器端代码文件)
collections.js
Check out a good way of structuring your app here.
首先,您不需要<head>
和<body>
标签
然后,您可以在客户端文件夹中创建一个布局模板,您可以在其中设置要渲染的播放器模板,也可以在页面中添加页眉,页脚等。
的的layout.html 强>
<template name="layout">
{{>players}}
</template>
然后你需要在客户端文件夹中有一个玩家模板。
我要继续,在这里制作一个简单的例子让你前进。收集用户输入值,将其插入 Players集合,并为该集合中的每个玩家使用 {{players}} div.result中的新表行>助手。
的 players.html 强>
<template name="players">
<div class="container">
<div class="row" style="border-bottom: 5px solid gray;">
<h2>Profile</h2>
</div>
<div id="wrapper">
<table>
<tr>
<td>First name:</td>
<td><input type="text" id="pff_name" /></td>
</tr>
<tr>
<td>Last name:</td>
<td><input type="text" id="pfl_name" /></td>
</tr>
</table>
<button class="insert">Submit</button>
</div><br/>
<div id="result">
<table class="table table-condensed table-striped table-bordered table-hover no-margin">
<tr>
<th>First Name</th>
<th>Last Name</th>
</tr>
{{#each players}}
<tr>
<td>{{firstname}}</td>
<td>{{lastname}}</td>
</tr>
{{/each}}
</table>
</div>
</div>
</template>
的 collections.js 强>
创建一个名为Players的新Meteor Collection,它将存储所有添加的文档。
Players = new Meteor.Collection("players");
的 players.js 强>
在这里, players 帮助器将返回一个游标,并且会调用一个名为 addPlayer 的已创建的Meteor方法。
Template.players.helpers({
players: function() {
return Players.find();
}
});
Template.players.events({
'click .insert': function(event, template) {
var first = $('#pff_name').val();
var last = $('#pfl_name').val();
if(first !== "" && last !== "") {
Meteor.call("addPlayer", first, last);
}
$('#pff_name').val("");
$('#pfl_name').val("");
}
});
的 server.js 强>
将播放器添加到Players集合
Meteor.startup(function () {
Meteor.methods({
addPlayer: function(fname, lname) {
Players.insert({firstname: fname, lastname: lname});
}
})
});
的 routrer.js 强>
告诉Iron Router渲染玩家模板
Router.map(function () {
this.route('players', {
path: '/',
template: 'players',
layoutTemplate: 'layout'
})
});
修改强>
您正在使用IronRouter版本0.9.4,但您的路线是为新版本定义的
将IronRouter更新为 iron:router@1.0.0-pre3 或,请遵循我为此版本提供的符号。
答案 1 :(得分:0)
很抱歉直言不讳,但你真的需要阅读this。
在非常非常顶级的地方说:
Router.route('/', function () {
this.render('Home');
});
当用户导航到网址“/”时,上面的路线会将名为“Home”的模板渲染到页面上。
路由器中有this.render("route");
行,但没有名为“route”的模板。