1

DockYardのember-validations mixin を試しています。次のような NewUser オブジェクトがあります。

App.NewUser = Ember.Object.extend(Ember.Validations.Mixin, {
  name: null,
  email: null,
  password: null,
  password_confirmation: null,

  validations: {
    name: {
      presence: true
    }
  },

  watchChanges: function() {
    // Live validations...
    this.validate();
  }.observes("name", "email", "password", "password_confirmation")
});

submitそして、メソッドを含むコントローラーがあります。

App.JoinController = Ember.ObjectController.extend({
  submit: function() {
    // Run validations again
    // Send to server if okay
    this.get("model").validate();
  }
});

モデルをビューにリンクするルート:

App.JoinRoute = Ember.Route.extend({
  model: function() {
    return App.NewUser.create();
  }
});

(これは、送信メソッドをコントローラーに転送するビューでもあります)

私が理解していないのは、コントローラーからモデルオブジェクトに戻って実行する方法.validate()です。のようなコントローラーのサブミットメソッドで何かできるはずですが、うまくいきthis.get("model").validate()ません。これを機能させるにはどうすればよいですか?

4

2 に答える 2

0

contentではなくコントローラーのプロパティにアクセスしてみる必要があると思います。次のmodelようなものが機能するはずです。

App.JoinController = Ember.ObjectController.extend({
  submit: function() {
   // Run validations again
   // Send to server if okay
   this.get("content").validate();
  }
});

疑似動作デモについては、こちらを参照してください。

それが役に立てば幸い。

于 2013-08-02T23:26:57.800 に答える