2017-08-19 8 views
0

メニューアイテムの名前とそのアイテムの価格を取り、そのデータをデータベースに格納する単純なフォームがあります。私のサーバー、私のセットアップ名前はメニュー上の別の名前と同じである場合、プログラムは、メニュー項目に追加されたルートでは、それは次のようにres.json()を経由してエラーとして吐き出す:今クライアントサイドフォームを使用した角型のサーバ側の検証

if (newItem) { 
    //Add the item to the db 
    } 
    else { 
    // the item has the same name as another item on the menu 
    res.json("{\"Error\" : \"Menu Item already exists!\"}"); 
    } 

エラーオブジェクトがサーバーからクライアントに返されたときに、フォームにエラーを表示します。私は自分のフォームと私のフォームにエラーをセットアップしましたが、同様の項目名が与えられたときに、正しく切り替えることができません。

これは私の形式です:サーバがエラーオブジェクトを送信するとき

<form role="form" name="addMenuItem"> 
      <div layout="row"> 
       <md-input-container class="md-block" flex-gt-xs=""> 
        <label>Item Name</label> 
        <input name="item_name" ng-model="formData.item_name" ng-minlength="1" ng-required="true" size="30"> 
        <div ng-messages="addMenuItem.item_name.$error"> 
         <div ng-message="required">Item name is required</div> 
        </div> 
        <div ng-messages="addMenuItem.item_name.$error.exists"> 
         <div ng-message="required">Item name exists</div> 
        </div> 
       </md-input-container> 
//other form components 

だから、私が表示されるまでメッセージaddMenuItem.item_name.$error.existsを切り替えたいと私はそれを切り替えるには、これを書いたが、それはかなりの作業ではありません。

$http.post('/addMenuItem', $scope.formData) 
      .then(function (data) { 
       const resJson = JSON.parse(data.data); 
       "Error" in resJson ? console.log("Error") : console.log("No err"); 
       console.log(resJson.hasOwnProperty('Error')); 
       if(resJson.hasOwnProperty('Error')) { 
        $scope.addMenuItem[item_name].$setValidity('exists'); // error thrown on this line 
       } 
       else { 
         //add to db 
       } 

      }); 

私はそのコードを実行すると、クロムDevのコンソールは、このエラーに串:

ReferenceError: item_name is not defined 

私はデコードできるものから何らかの理由で自分のフォーム(または具体的にはitem_nameの入力)を見つけることができないように見えますが、なぜそれを理解できません。私は、HTMLに書いたエラーを簡単に切り替えることができると思いますよね?

$scope.addMenuItem["item_name"].$setValidity('exists'); 

答えて

0

Reaplce

$scope.addMenuItem[item_name].$setValidity('exists'); 

ITEM_NAMEは有効な変数となり、エラーではありません。

+0

コンソールのエラーを取り除きましたが、エラーはフォームに表示されず、もうアイデアは得られましたか? – rakeshdas

関連する問題