2016-06-16 15 views
0

RESTful APIにフォームを送信しようとしています。このフォームはすべて$ validationと$ error checkingで設定されていましたが、今では私がモデルで直接フォームを指し示したので、これらの変数はフォーム/オブジェクトにもう存在しません。だから、これが逮捕されています妥当性検査でRESTful APIにangualrフォームを送信

 console.log(vm.form); 
     if (vm.form.$valid) { 

ビュー:

<form class="form-horizontal" name="form" role="form" novalidate ng-init="submitted=false" ng-submit="listingVm.submit()"> 
     <div class="form-group"> 
      <label for="title" class="control-label col-xs-3">Title:</label> 
      <div class="col-xs-9"> 
       <input type="text" class="form-control" readonly="readonly" id="title" value="{{ listingVm.form.Title }}"> 
      </div> 
     </div> 
     <div class="form-group"> 
      <label for="description" class="control-label col-xs-3">Description:</label> 
      <div class="col-xs-9"> 
       <input type="text" class="form-control" name="description" ng-model="listingVm.form.Description" required> 
       <div class="error-message" ng-show="listingVm.form.Description.$invalid &&listingVm.form.Description.$touched || listingVm.submitted"> 
        <span ng-show="listingVm.form.Description.$error.required">Description is required.</span> 
       </div> 
      </div> 
     </div> 
     </div> 
     <div class="form-group"> 
      <label for="value" class="control-label col-xs-3">Value:</label> 
      <div class="col-xs-9"> 
       <input type="number" class="form-control" name="value" ng-model="listingVm.form.Value" required> 
       <div class="error-message" ng-show="listingVm.form.Value.$invalid && listingVm.form.Value.$touched || listingVm.submitted"> 
        <span ng-show="listingVm.form.Value.$error.required">Value is required.</span> 
       </div>     
      </div> 
     </div> 

     <input type="hidden" name="Id" ng-model="listingVm.form.Id" /> 

     [{{listingVm.form}}] 

     <button class="pull-right btn btn-same" type="submit">Save Changes</button> 
    </form> 

コントローラー:

function editListingController($http, $stateParams, toastr) { 
    var vm = this; 

    vm.submit = function() { 
     vm.submitted = true; 

     console.log(vm.form); 
     if (vm.form.$valid) { 

      $http.put('/api/listings/' + $stateparams.id, vm.formdata).then(function (response) { 

      }, function (response) { 
       toastr.error(response.data.message); 
      }); 
     } 

    }; 

具体的に、この:

<input type="text" class="form-control" name="Description" ng-model="listingVm.form.Description" required> 
        <div class="error-message" ng-show="listingVm.form.Description.$invalid && listingVm.form.Description.$touched || listingVm.submitted"> 

を検証メッセージがlistingVm.formを拾う必要があります。説明。$無効ifフィールドは空であり、触れられています。しかし、私のフィールドには無効なものはありません。これはどこから来たのですか?これらの$機能を適用するものは、私のコードにはありません。

答えて

0

ああ、があります。です。

私はlistingVm.form.Descriptionを探していたバリデータが代わりに

<input type="text" class="form-control" name="Description" ng-model="listingVm.form.Description" required /> 
    <div class="error-message" ng-show="listingVm.form.Description.$invalid && listingVm.form.Description.$touched || listingVm.submitted"> 
     <span ng-show="listingVm.form.Description.$error.required">Description is required.</span> 

NG-ショー参照の、だから、form.Description

である

形式直接

ng-show="form.Description.$error.required" 

だから、次のようになります。

<input type="text" class="form-control" name="Description" ng-model="listingVm.form.Description" required /> 
    <div class="error-message" ng-show="form.Description.$invalid && form.Description.$touched || listingVm.submitted"> 
     <span ng-show="form.Description.$error.required">Description is required.</span> 

ng-model="listingVm.form.Description" 

注意しかし、そのNGモデルは、依然としてコントローラリファレンスを使用します

関連する問題