2016-04-02 15 views
0

これまでAngular.jsプロジェクトを行ってきましたが、これは私の最初の平均スタックプロジェクトです。私は、meanjs.orgテンプレートを出発点として使用しています。あなたは、モジュールを追加することができますyoジェネレータを使用すると、すべてのサーバーとクライアントのモデル、コントローラ、ビューなどとあなたのためのモジュールを作成します。Angular.js検証メッセージが表示されない

私はモジュールを追加し、名前フィールドとそれが必要になります。私は基本的にモデルを取って、追加のフィールドに追加して必要なものにしました。フォームに同じフィールドを追加しました。フォームを送信しようとすると、必要なすべてのフィールドが作成されます。名前の検証以外のエラーも表示されません。

address2: { 
    type: String, 
    default: '', 
    required: false, 
    trim: true 
    }, 

しかし、その後、あなたに:ここ

は、モデル

'use strict'; 

/** 
* Module dependencies. 
*/ 
var mongoose = require('mongoose'), 
    Schema = mongoose.Schema; 

/** 
* Company Schema 
*/ 
var CompanySchema = new Schema({ 
    name: { 
    type: String, 
    default: '', 
    required: 'Please fill Company name', 
    trim: true 
    }, 
    address1: { 
    type: String, 
    default: '', 
    required: 'Please fill Company addres', 
    trim: true 
    }, 
    address2: { 
    type: String, 
    default: '', 
    required: false, 
    trim: true 
    }, 
    city: { 
    type: String, 
    default: '', 
    required: 'Please fill Company city', 
    trim: true 
    }, 
    state: { 
    type: String, 
    default: '', 
    required: 'Please fill Company state', 
    trim: true 
    }, 
    zip: { 
    type: String, 
    default: '', 
    required: 'Please fill Company zip code', 
    trim: true 
    }, 
    phone: { 
    type: String, 
    default: '', 
    required: 'Please fill Company phone number', 
    trim: true 
    }, 
    created: { 
    type: Date, 
    default: Date.now 
    }, 
    user: { 
    type: Schema.ObjectId, 
    ref: 'User' 
    } 
}); 

mongoose.model('Company', CompanySchema); 

そして、ここからの眺めは、あなたがそのアドレス2が必要とされていないと言っているあなたのモデルでは

<section> 
    <div class="page-header"> 
    <h1>{{vm.company._id ? 'Edit Company' : 'New Company'}}</h1> 
    </div> 
    {{ vm.form.companyForm }} 
    <br /> 
    {{ vm.company }} 
    <div class="col-md-12"> 
    <form name="vm.form.companyForm" class="form-horizontal" ng-submit="vm.save(vm.form.companyForm.$valid)" novalidate> 
     <fieldset> 
     <div class="form-group" show-errors> 
      <label class="control-label" for="name">Name</label> 
      <input name="name" type="text" ng-model="vm.company.name" id="name" class="form-control" placeholder="Name" required> 
      <div ng-messages="vm.form.companyForm.name.$error" role="alert"> 
      <p class="help-block error-text" ng-message="required">Company name is required.</p> 
      </div> 
     </div> 
     <div class="form-group" show-errors ng-class="{ 'has-error': vm.form.companyForm.address1.$invalid }"> 
      <label class="control-label" for="address1">Address 1</label> 
      <input address1="address1" type="text" ng-model="vm.company.address1" id="address1" class="form-control" placeholder="Address" required> 
      <div ng-messages="vm.form.companyForm.address1.$error" role="alert"> 
      <p class="help-block error-text" ng-message="required">Company address is required.</p> 
      </div> 
     </div> 
     <div class="form-group" show-errors> 
      <label class="control-label" for="address2">Address 2</label> 
      <input address2="address2" type="text" ng-model="vm.company.address2" id="address2" class="form-control" placeholder="Address" required> 
     </div> 
     <div class="form-group" show-errors> 
      <label class="control-label" for="city">City</label> 
      <input city="city" type="text" ng-model="vm.company.city" id="city" class="form-control" placeholder="City" required> 
      <div ng-messages="vm.form.companyForm.city.$error" role="alert"> 
      <p class="help-block error-text" ng-message="required">Company city is required.</p> 
      </div> 
     </div> 
     <div class="form-group" show-errors> 
      <label class="control-label" for="state">State</label> 
      <input state="state" type="text" ng-model="vm.company.state" id="state" class="form-control" placeholder="State" required> 
      <div ng-messages="vm.form.companyForm.state.$error" role="alert"> 
      <p class="help-block error-text" ng-message="required">Company state is required.</p> 
      </div> 
     </div> 
     <div class="form-group" show-errors> 
      <label class="control-label" for="zip">Zip Code</label> 
      <input zip="zip" type="text" ng-model="vm.company.zip" id="zip" class="form-control" placeholder="Zip Code" required> 
      <div ng-messages="vm.form.companyForm.zip.$error" role="alert"> 
      <p class="help-block error-text" ng-message="required">Company zip code is required.</p> 
      </div> 
     </div> 
     <div class="form-group" show-errors> 
      <label class="control-label" for="phone">Phone Number</label> 
      <input phone="phone" type="text" ng-model="vm.company.phone" id="phone" class="form-control" placeholder="Phone Number" required> 
      <div ng-messages="vm.form.companyForm.phone.$error" role="alert"> 
      <p class="help-block error-text" ng-message="required">Company phone is required.</p> 
      </div> 
     </div> 
     <div class="form-group"> 
      <button type="submit" class="btn btn-default">{{vm.company._id ? 'Update' : 'Create'}}</button> 
     </div> 
     <div ng-show="vm.error" class="text-danger"> 
      <strong ng-bind="vm.error"></strong> 
     </div> 
     </fieldset> 
    </form> 
    </div> 
</section> 

答えて

1

ですそれが要求されていることを確認してください。

あなたはその入力から requiredを削除する必要が
<input address2="address2" type="text" ng-model="vm.company.address2" id="address2" class="form-control" placeholder="Address" required> 

そして一つだけのエラーメッセージが表示されていることを理由はこれです(と私はangular documentation for ng-messagesを引用しています):

デフォルトでは、1つのメッセージのみが時間で表示され、この が依存テンプレート内のメッセージの優先順位付け。 (これはNG-のメッセージ - 複数またはディレクティブのコンテナに複数の 属性を使用して変更することができます。)

+0

エラーメッセージを除いて、私はあなたと一緒にいます。名前が入力されると、次のエラーは表示されませんが、要求されたために送信されません。 – Jhorra

0

常にそれがスペルミスものだったように私は、答えを見つけました。私はコピー&ペーストして、フィールドの名前を変更しました。私は名前を変更したが、見つけて置き換えた。これにより、入力に名前の値が不足していました。あなたが最初にそれを見れば、それは表示されますaddress1="address1"

私の発見と置換は、名前のタグを紛失しているすべての名前を置き換えていた。すぐに私はすべてのエラーが現れたと修正した。

関連する問題