我正在玩有前途的meteor框架并撞墙。在我的模板中的任何位置插入{{#if something}}{{/if}}
会导致呈现空白页面。考虑一下这个模板:
<head>
<title>MUse - XUse on Meteor</title>
</head>
<body>
{{> menu}} {{> login }}
{{> hello}}
</body>
<template name="hello">
<div class="hello">
<h1>This is Xuse on Meteor a.k.a. <em>MUse</em></h1>
</div>
</template>
<template name="login">
<div class="login">
<label for="username">Login:</label>
<input type="text" id="username" value="" placeholder="Login"/>
<label>Password:</label>
<input type="password" id="password" value="" placeholder="Password"/>
<input type="button" id="signin" name="signin" value="Sign in" />
</div>
</template>
<template name="dashboard">
<div class="dashboard">
Hi, {{login_name}}.
</div>
</template>
<template name="menu">
<nav>
<a href="/#dashboard">Dashboard</a> |
<a href="/#logout">Log out</a> |
{{#if login_name}}
<a href="/#{{login_name}}">{{login_name}}</a>
{{/if}}
</nav>
</template>
以防coffeescript
代码:
if Meteor.is_client
Template.hello.greeting = -> "Welcome to muse."
Template.login.events =
'click #signin' : ->
console.log "You pressed the 'sign in' button" if console?
login_name = $('#username').val()
password = $('#password').val()
console.log "Credentials: #{login_name} -> #{password}" if console?
Template.menu.events =
'click a[href*="dashboard"]' : ->
console.log "Menu -> Dashboard invoked" if console?
'click a[href*="logout"]' : ->
console.log "Menu -> Log out invoked" if console?
if Meteor.is_server
Meteor.startup ->
time = new Date
console.log "#{time} Hi. This is server" if console?
这就是全部 - 仅此而已。删除{{#if...}}
序列会导致正确渲染,同时将其留在原位或放置在任何有意义的渲染空页面。任何线索?
我确实尝试过todos示例并且它在同一台机器上工作,因此这不是安装问题。 BTW这台机器是一台可怜的旧笔记本电脑华硕A6Rp搭载Ubuntu 12.04。
答案 0 :(得分:2)
您还需要在正确的模板上定义咖啡脚本中的login_name,以下是javascript中的示例:
Template.menu.login_name = function () {
return $('#username').val();
};
coffeescript不是100%,但我相信你能得到照片:
Template.menu.login_name = -> $('#username').val()