这是一个非常令人困惑的错误,看起来它只是一些根本错误的东西。
这是我的模板,它正确显示。
<template name="user">
{{#each emails}}
{{address}}
{{/each}}
{{#if customer}}
{{> userCustomer customer}}
{{else}}
Sign up to be a customer.
<form id="customerSignup">
<label>First Name</label>
<input name="firstname" value="" type="text" placeholder="First Name"/>
<button type="submit">Become a customer!</button>
</form>
{{/if}}
</template>
这是我的js。当我提交表单时,不会调用此事件处理程序。页面尝试在url中发布表单参数,并且控制台日志不会发生,实际上没有被记录,没有错误或任何内容。与此非常相似的其他事情都很好。
Template.user.events({
'submit form#customerSignup': function(e) {
e.preventDefault();
console.log('what???');
// Other logic
}
});
我能在这个和其他功能齐全的东西之间找到的唯一区别就是我的路由器中的这一行:
this.route('user', {data: function() { return Meteor.user(); }});
这是一个很好用的例子。
<template name="login">
Sign in:
{{signinError}}
<form id="signin">
<label>Email</label>
<input name="email" value="" type="text" placeholder="Email"/>
<label>Password</label>
<input name="password" value="" type="password" placeholder="Password" />
<button type="submit">Sign in!</button>
</form>
</template>
Template.login.events({
'submit form#signin': function(e) {
e.preventDefault();
Meteor.loginWithPassword( /* etc logic */ );
},
});
帮助!!!非常困惑。这是基本的Meteor东西,似乎没有任何理由被打破。这是不同的背景搞砸了吗?
答案 0 :(得分:0)
好吧,在我的javascript文件中某处 else 似乎是一个无声错误导致此部分无声地失败。我不知道为什么,我特别不知道为什么它没有说什么,但现在它工作正常。这个谜啊!