【发布时间】:2014-11-26 02:43:03
【问题描述】:
我有一个用作用户注册页面的模板。它有电子邮件、密码、密码确认、名字和姓氏。然后,有一个按钮,它应该调用控制器中定义的动作。车把模板看起来像这样。
<div class="well">
<form role="form">
<div class='form-group'>
{{input type='email' class='form-control' placeholder='E-Mail' value=email}}
</div>
<div class='form-group'>
{{input type='text' class='form-control' placeholder='First Name' value=password}}
</div>
<div class='form-group'>
{{input type='text' class='form-control' placeholder='Last Name' value=password}}
</div>
<div class='form-group'>
{{input type='password' class='form-control' placeholder='Password' value=password}}
</div>
<div class='form-group'>
{{input type='password' class='form-control' placeholder='Password Confirmation' value=passwordConfirmation}}
</div>
<button {{action 'signUp'}} class='btn btn-lg btn-default'>Sign Up</button>
</form>
</div>
现在,只要出现验证错误(例如缺少电子邮件),我想在同一页面上呈现错误。为此,我的操作中有基本的验证规则,除此之外,还定义了另一个名为 signUpError 的属性。我的控制器看起来像这样。
Postr.SignUpController = Ember.Controller.extend({
actions: {
signUp: function(){
var email = this.get('email');
var password = this.get('password');
var passwordConfirmation = this.get('passwordConfirmation');
var firstName = this.get('firstName');
var lastName = this.get('lastName');
console.log(email);
if(!email || !password || !passwordConfirmation || !firstName || !lastName){
this.set('signUpError ', 'One or more field is missing!');
}
if(password !== passwordConfirmation){
this.set('signUpError ', 'Password does not match!');
}
//console.log(this.get('signUpError'));
}
},
signUpError: ''
});
并且,在表单的顶部,我添加了一个新的 HTML 元素来呈现错误。
{{#if signUpError}}
<div class="alert alert-danger">
{{signUpError}}
</div>
{{/if}}
问题是...我无法让signUpError 出现:|有任何想法吗?
谢谢大家。
【问题讨论】:
-
不确定这是否是问题所在,但在您的 `this.set('signupError ') 末尾有一个空格。也许这样可以解决问题?
标签: javascript ember.js handlebars.js