我对Ember.js很陌生,而且我在如何对某个输入字段进行验证方面遇到了麻烦。
以下是我的模板index.hbs的代码:
<div class="jumbotron text-center">
<h1>Coming Soon</h1>
<br/><br/>
<p>Don't miss our launch date, request an invitation now.</p>
<div class="form-horizontal form-group form-group-lg row">
<div class="col-xs-10 col-xs-offset-1 col-sm-6 col-sm-offset-1 col-md-5 col-md-offset-2">
{{input type="email" value=model.email class="form-control" placeholder="Please type your e-mail address." autofocus="autofocus"}}
</div>
<div class="col-xs-10 col-xs-offset-1 col-sm-offset-0 col-sm-4 col-md-3">
<button disabled={{isDisabled}} {{action 'saveInvitation' model}} class="btn btn-primary btn-lg btn-block">Request invitation</button>
</div>
</div>
{{#if responseMessage}}
<div class="alert alert-success">{{responseMessage}}</div>
{{/if}}
<br/><br/>
</div>
这是我的控制器index.js的代码:
import Ember from 'ember';
export default Ember.Controller.extend({
headerMessage: 'Coming soon',
responseMessage: '',
email: '',
isValid: Ember.computed.match('email', /^.+@.+\..+$/),
isDisabled: Ember.computed.not('isValid'),
});
我想要验证的输入字段是电子邮件。我知道如何通过替换值=&#34;&#34;来进行验证。字段只是值=&#34;电子邮件&#34;,但我想知道如何使用value = model.email
来做到这一点这似乎是一个简单的问题,但我无法找到有关此特定问题的文档。
答案 0 :(得分:2)
当您使用input
帮助程序时,当您键入文本字段时,这将更新model.email
属性。
1.您不需要在控制器中声明email
属性
2. isValid
计算属性相关键应为model.email
import Ember from 'ember';
export default Ember.Controller.extend({
headerMessage: 'Coming soon',
responseMessage: '',
isValid: Ember.computed.match('model.email', /^.+@.+\..+$/),
isDisabled: Ember.computed.not('isValid'),
});
答案 1 :(得分:0)
您可以在saveInvitation
操作中检查电子邮件的有效性。