0

サービスから json 配列データを取得し、このデータをテーブル内に (チェックボックスを使用して) 表示した後、データを取得し (ユーザーがチェックした、チェックボックスがクリックされたことを意味します)、別の json 配列を配置して、これをラップします変数を camVariable としてエクスポートして、2 番目のユーザー フォームにエクスポートします。これをいくつかの方法で試しましたが、目標を達成できません。可能にするには、何を変更すればよいですか? ここに私のコードがあります:

camForm.on('form-loaded', function() {

      camForm.variableManager.fetchVariable('jsonData');
    });
    camForm.on('variables-fetched', function() {
      $scope.jsonData = camForm.variableManager.variableValue('jsonData');
    });

var  selectedDocuments=$scope.selectedDocuments=[];
 $scope.content = '';

 $scope.isChecked = function(id){
      var match = false;
      for(var i=0 ; i < $scope.selectedDocuments.length; i++) {
        if($scope.selectedDocuments[i].id == id){
          match = true;
        } 

      }

      return match;
  };
  $scope.sync = function(bool, item){

    if(bool){
      // add item
      $scope.selectedDocuments.push(item);
    } else {
      // remove item
      for(var i=0 ; i < $scope.selectedDocuments.length; i++) {
        if($scope.selectedDocuments[i].id == item.id){
          $scope.selectedDocuments.splice(i,1);
        }
      }      
    }
  };

  camForm.on('submit', function() {
      camForm.variableManager.createVariable({
        name: 'selectedDocuments',
        type: 'json',
        value:$scope.selectedDocuments
      });
    });

function toJsonValue(arr) {
var myJSON = "";
var FinalResult = JSON.stringify(arr);
myJSON = JSON.stringify({FinalResult});
var json=$scope.json={};
json=JSON.parse(myJSON);
return json;
}

 $scope.toggle = function (index){
    if($scope.jsonData[index].hidethis == undefined){
        $scope.jsonData[index].hidethis = true;
    }else{
        $scope.jsonData[index].hidethis = !$scope.jsonData[index].hidethis;
    }       
    }
</script>
<h2>My job List</h2>                                                                                                                                                                                     
    <div class="container">
        <table name ="table" class="table table-hover" style="width:100%;" cellspacing="0">
            <thead>
                <tr>
                    <th style="width:80px; height:25px;"><input style="width:25px; height:25px;" type="checkbox" onclick="checkAll(this)"></th>
                    <th style="width:140px;">id</th>
                    <th style="width:305px;">organizationNameEN</th>
                    <th style="width:305px;">organizationNameGE</th>
                     <th>&nbsp;</th>

                </tr>           
            </thead>
            <tbody ng-repeat="item in jsonData" >
                <tr>
                    <td><input type="checkbox" ng-change="sync(bool, item)" ng-model="bool" ng-checked="isChecked(item.id)"  ></td> 
                    <td><input style="width:305px;" type="number" id="id"  ng-model="item.id" readonly /></td>
                    <td><input style="width:305px;" type="text" id="organizationNameEN"  ng-model="item.organizationNameEN"  required /></td>
                     <td><input style="width:305px;" type="text" id="organizationNameGE"  ng-model="item.organizationNameGE"  required/></td>                     
                     <td><button class="btn btn-default btn-xs" ng-click="toggle($index)"><span class="glyphicon glyphicon-eye-open"></span></button></td>


    </tr>   
    <tr id="{{hideid + $index}}" ng-show="item.hidethis">
            <td>
    <label for="startDate" class="control-label">startDate</label>
     <div class="controls">
      <input style="width:105px;" id="strtDate" class="form-control" type="text" ng-model="item.startDate" required  readonly/>
      </div>
      <br>
      <label for="endDate" class="control-label">endDate</label>
       <div class="controls">
      <input style="width:105px;" id="endDate" class="form-control" type="text" ng-model="item.endDate" required  readonly/>
      </div>
    </td>
        </tr>               
   </tbody>
  </table>
    </div>

    <script>
function checkAll(bx) {
      var cbs = document.getElementsByTagName('input');
      for(var i=0; i < cbs.length; i++) {
        if(cbs[i].type == 'checkbox') {
          cbs[i].checked = bx.checked;
        }
      }
    }

</script>
</form>
4

1 に答える 1