Ember.js 2.7 - 如何检查输入字段的验证?

时间:2016-12-22 20:15:10

标签: javascript ember.js

我对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

来做到这一点

这似乎是一个简单的问题,但我无法找到有关此特定问题的文档。

2 个答案:

答案 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操作中检查电子邮件的有效性。