Ember.jsを学んでいて、今はちょっとしたお問い合わせフォームがついています。私は2つのフィールドを持っています.1つは電子メール用、もう1つはメッセージ用です。検証が満たされない限り、[送信]ボタンを無効にする必要があります。また、すべてがOKで、ユーザーがメッセージを送信した場合は、メッセージが送信されたというフラッシュ通知でフォームを置き換える必要があります。条件が満たされていない間に[送信]ボタンが有効のままになる
アプリ/コントローラ/ contact.js:
import Ember from 'ember';
export default Ember.Route.extend({
emailAddress: '',
message: '',
isValidEmail: Ember.computed.match('emailAddress', /^[email protected]+\..+$/),
isValidMessage: Ember.computed.gte('message.length', 5),
isValid: Ember.computed.and('isValidEmail', 'isValidMessage'),
isInvalid: Ember.computed.not('isValid'),
actions: {
sendMessage() {
alert(`Sending message from: ${this.get('emailAddress')}`);
this.set('responseMessage', `Thank you! We've received message from: ${this.get('emailAddress')} . You will be responsed ASAP!`);
this.set('emailAddress', '');
}
}
});
とテンプレートcontact.hbs:まだ
<h1>Contact us</h1>
<div class="well well-sm">
<p> If you have any questions, feel free to contact us!</p>
</div>
<div class="row">
<div class="col-md-6">
{{#if responseMessage}}
<br/>
<div class="alert alert-success">{{responseMessage}}</div>
{{else}}
<div class="form-group">
{{input type="email" value=emailAddress class="form-control" placeholder="Please type your e-mail address." autofocus="autofocus"}}
{{#if emailAddress.isValidEmail}}<span class="glyphicon glyphicon-ok form-control-feedback"></span>{{/if}}
</div>
<div class="form-group">
{{textarea class="form-control" placeholder="Your message. (At least 5 characters.)" rows="7" value=message}}
{{#if message.isValidMessage}}<span class="glyphicon glyphicon-ok form-control-feedback"></span>{{/if}}
</div>
{{/if}}
<button class="btn btn-primary btn-lg btn-block" disabled={{isInvalid}} {{action 'sendMessage'}}>Contact us!</button>
</div>
けど、だから、ここのコードです:
- フォームが空のとき、ボタンはアクティブのままです。
- フォームの完成時にグリフコンが表示されません。
- メッセージの送信時に通知が表示されません。
私は間違っていますか?
ありがとう、@parag、私はすでに問題を解決しました。 – AlexNikolaev94