3

Ember + Handlebars で書かれたユーザー登録フォームがあります。私は両方とも初めてです。ユーザーが入力している間、フォームでライブ検証を実行したいと思います。そのためには、変更イベントを監視し、インテリジェントに対応できる必要があります。

ビューで属性を宣言しemailて、変更を監視できると考えていました。email次に、それが既に存在するかどうかをサーバーに尋ねます。

これを行う方法はいくつか考えられますが、明確な勝者が見えません。ビュー全体の変化を観察しようとしましたが、それは不格好です。今、私はnew-userオブジェクトを作成してそこにロジックを保存しようとしていますが、Ember はそれをサーバーに接続したいと考えています。私はここで少し途方に暮れています。

どんなアドバイスでも大歓迎です。

これが私の見解が今どこにあるかです:

FitMap.JoinView = Ember.View.extend({
  templateName: "join",

  name: null,
  email: null,
  password: null,
  password_confirmation: null,

  submit: function(event, view) {
    event.preventDefault();
    event.stopPropagation();

    $.post("/users", {
      name: this.get("name"),
      email: this.get("email"),
      password: this.get("password"),
      password_confirmation: this.get("password_confirmation")
    }, function() {
      console.log("created");
    })
    .fail(function(response) {
      console.log(response);
    });
  }
});
4

1 に答える 1

2

このようにjQuery検証を使用しています

FitMap.JoinView = Ember.View.extend({
  templateName: "join",
  name: null,
  email: null,
  password: null,
  password_confirmation: null,
  didInsertElement: function() {
      var frm = $("#" + this.elementId);
      frm.validate({rules: ...});
  },
  submit: function(event, view) {
    event.preventDefault();
    event.stopPropagation();
    var frm = $("#" + this.elementId);
    if (!frm.valid()) {
        console.log("form is not in a valid state");
        return false;
    }
  })
});

jQuery検証を使用すると、ルール内でリモート検証を定義できます.ユーザー名/電子メールが既に使用されているかどうかを確認するために正確に使用しています.

于 2013-08-02T14:59:04.877 に答える