2017-10-03 25 views
0

SQLテーブルからデータを取得してhtmlテーブルに表示しています。このテーブルの行をクリックすると、EDIT/DELETEする入力テキストに値が表示されます。 角度フィルタを作成しましたが、機能しません。入力テキストは無効になっています。これは、メソッド "selectedMember"を適用して入力テキストを消去する前に動作していました。 この問題を解決するためにどのように任意のアイデア、事前Angularjsフィルタがメソッドと連携していません

でのおかげでHTMLは次のとおりです。

<body ng-app="ContractT" ng-controller="crudController"> 
    <br /><br /> 
    <form > 
     <input type="checkbox" ng-model="Hide" />Hide <input type="button" value="Clear" ng-click="resetform()" /> 
     <input type="submit" value="Save" ng-click="save()"/> <input type="button" value="Delete" ng-click="delete(selectedMember.sys_key)" /> 
     <fieldset> 
     <legend>Contract Type</legend> 
     <table> 
      <tr> 
       <td>Code</td> 
       <td><input type="text" size="10" pattern="^[a-zA-Z0-9]+$" title="Alphnumeric" required autofocus ng-model="selectedMember.Code.Staff_Type_Code"> 
        <input type="text" size="10" hidden ng-model="selectedMember.sys_key" /> 
       </td> 
      </tr> 
      <tr> 
       <td>Latin Description</td> 
       <td><input type="text" required size="35" ng-model="selectedMember.Latin.L_Desc"></td> 
      </tr> 
      <tr> 
       <td>Local Description</td> 
       <td><input type="text" required size="35" ng-model="selectedMember.Local.A_Desc"></td> 
      </tr> 
      <tr> 
       <td>No. Of Houres Per Day</td> 
       <td><input type="text" pattern="^[0-9]+$" title="Please enter numbers only" size="10" maxlength="2" ng-model="selectedMember.Hours_Day"></td> 
      </tr> 
      <tr> 
       <td>No. Of Days Per Week(s)</td> 
       <td><input type="text" pattern="^[0-9]+$" title="Please enter numbers only" size="10" maxlength="2" ng-model="selectedMember.Days_Week"></td> 
      </tr> 
      <tr> 
       <td>End Of Contract By</td> 
       <td> 
        <select> 
        <option ng-model="Age">Age</option> 
        <option ng-model="NYears">Number Of Years in Service</option> 
        </select> 
       </td> 
      </tr> 
      <tr> 
       <td>Number</td> 
       <td> 
        <input type="text" pattern="^[0-9]+$" title="Please enter numbers only" size="10" maxlength="2" ng-model="selectedMember.Num_EndWork"> 
        <select> 
        <option ng-model="Months">Months</option> 
        <option ng-model="Years">Years</option> 
        </select> 
       </td> 
      </tr> 
     </table> 
     </fieldset> 
     <br /> 
     <table border="1" ng-hide="Hide"> 
     <thead> 
      <tr> 
       <!--<th>syskey</th>--> 
       <th>Code</th> 
       <th>Latin Description</th> 
       <th>Local Description</th> 
       <th>Hours_Day</th> 
       <th>Days_Week</th> 
       <th>Num_EndWork</th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr ng-repeat="c in Contracts | filter:Code | filter:Latin | filter:Local "> 
       <td style="display:none;"><a href="#" ng-click="showInEdit(c)">{{c.sys_key}}</a></td> 
       <td><a href="#" ng-click="showInEdit(c)">{{c.Staff_Type_Code}}</a></td> 
       <td><a href="#" ng-click="showInEdit(c)">{{c.L_Desc}}</a></td> 
       <td><a href="#" ng-click="showInEdit(c)">{{c.A_Desc}}</a></td> 
       <td><a href="#" ng-click="showInEdit(c)">{{c.Hours_Day}}</a></td> 
       <td><a href="#" ng-click="showInEdit(c)">{{c.Days_Week}}</a></td> 
       <td><a href="#" ng-click="showInEdit(c)">{{c.Num_EndWork}}</a></td> 
      </tr> 
     </tbody> 
     </table> 
    </form> 
</body> 

コントローラは次のとおりです。

contractT.controller('crudController', function($scope, crudService) { 

     loadrecords(); 

     function loadrecords() { 
      crudService.getContracts().then(function(response) { 
       $scope.Contracts = (response.data); 
       console.log($scope.Contracts); 
      }); 
     } 

     $scope.resetform = function() { 
      $scope.selectedMember = {}; 
      //$scope.selectedMember = {}; 
      //$scope.Local = {}; 
      //$scope.Nhd = null; 
      //$scope.Ndw = null; 
      //$scope.Num = null; 
     } 

     $scope.selectedMember = { 
      Code: "", 
      sys_key: "", 
      Latin: "", 
      Local: "", 
      Hours_Day: "", 
      Days_Week: "", 
      Num_EndWork: "" 
     } 

     $scope.showInEdit = function(member) { 
      $scope.selectedMember = member; 
      $scope.selectedMember.Code = member; 
      $scope.selectedMember.Latin = member; 
      $scope.selectedMember.Local = member; 
      //$scope.selectedMember.Hours_Day = member; 
      //$scope.selectedMember.Days_Week = member; 
      //$scope.selectedMember.Num_EndWork = member; 
     } 

     $scope.delete = function(sys_key) { 
      if ($scope.selectedMember.sys_key = {}) 
       alert("Please select a valid values"); 

      else if (confirm("Are you sure want to delete?")) { 
       var promiseGetSingle = crudService.delete(sys_key); 

       promiseGetSingle.then(function(pl) { 
         $scope.OneContract = pl.data; 

         $scope.selectedMember = {}; 
         alert("Deleted Successfully"); 
         loadrecords(); 
        }, 
        function(errorPl) { 
         console.log('failure deleteing Contract', errorPl); 
        }); 
      } 
     } 
    }); 
+0

$ scope.showInEdit =関数(メンバー) { $ scope.selectedMember = member; } –

+0

問題はここで正しくjsonオブジェクトをチェックし、dbから来て –

+0

返信ありがとうございますが、selectedMemberを追加する前に非常にうまくいっていました。 – Hassan

答えて

0
<tr ng-repeat="c in Contracts | filter:selectedMember.Code | filter:selectedMember.Latin | filter:selectedMember.Local "> 
関連する問題