2016-08-10 4 views
0

私は現在、フォームの検証が必要なEmberアプリケーションのチームと一緒に作業しています。フロントエンドフォームの検証にember-cp-validations を使用することにしました。私はいくつかの簡単なバリデーションを加えなければならない例に従おうとしていますが、何らかの理由でバリデーションメッセージが表示されません。私はpreprint-form-validator.jsという別のファイルを作成しました。このファイルにはbuildValidationsを使って基本的な検証が含まれています。Ember-jsはember-cp-validationを使用して検証を行います

はその後、私のデータモデルでは、私は、ファイルインポート:

import Validations from '../validators/preprint-form-validator';

をし、モデルがそのフィールドの一部について検証がなければならないことを知っていたように、それにモデルを拡張:

export default DS.Model.extend(Validations, { ...

私がこれを実行した後、私はこの例を踏襲し、検証された入力コンポーネントを作成しました。これらのファイルはhereであり、検証されたフォーム入力がどのように表示されるかのためのフロントエンドフレームワークを作成します。

は最後に、私のコンポーネントでは、私は新しい検証、入力コンポーネントが含ま:

{{validated-input model=model valuePath="title" placeholder="Title"}}

を私がバリでのページに行くと、本当に何もしない入力フィールドがあります - 私が含めることを試みた制限の検証もチェックもしていないので。何とか

私は問題を解決しようとしていた
import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model() { 
     return this.store.createRecord('preprint'); 
    } 
}); 

、私はそれがモデルとは何かだと信じまたはその:コンポーネントが入っている経路では、私はこのようなcreateRecord()を行うモデルフックを持っていますvalidationプロパティがvalidated-input.jsに設定されていませんでした。

しかし、この時点で私は立ち往生して、フォームの検証に何が間違っているか把握できませんでした。

私はこのフォームの検証でいくつかの重要な接続が欠落しているようですが、それが何であるか分かりません。誰かが私が間違っていることについて指導をすることができれば感謝します。

+0

私たちのアプリケーションでは、これをまっすぐで使いやすいember検証として使用しました。 https://github.com/DockYard/ember-validations – sekhar

答えて

0

コードに間違いはありません。あなたの「プレプリントフォームバリデーター」はどのように見えますか?あなたが好きなら、フォームコンポーネントを検証できます。

//login-form.js 
import { LoginValidations } from '../../validators/login-validator'; 

export default Ember.Component.extend(LoginValidations, { 
    isValid: Ember.computed.and('validations.isValid'), 
}); 

//login-form.hbs 

{{validated-input type="email" model=this valuePath="email"}} 
{{validated-input type="password" model=this valuePath="password"}} 

//validators/login-validator.js 
import { validator, buildValidations } from 'ember-cp-validations'; 

export const LoginValidations = buildValidations({ 
email: [ 
    validator('presence', { 
    presence: true, 
    message: 'O email deve ser informado' 
    }), 
validator('format', { 
    type: 'email', 
    message: 'Email inválido' 
}) 
], 

password: [ 
    validator('presence', { 
    presence: true, 
    message: 'A senha deve ser informada' 
    }), 
    validator('length', { 
    min: 6, 
    message: 'A senha deve possuir no mínimo 6 caracteres' 
    }),  
    validator('password-validator') 
] 
}); 

export default { LoginValidations }; 
関連する問題