Javascript 如何根据angular js中的表数组获取下拉列表中的列?

Javascript 如何根据angular js中的表数组获取下拉列表中的列?,javascript,angularjs,arrays,Javascript,Angularjs,Arrays,我有一个控制器 $scope.operationData = [ { "label" : "Inventory", "labelType" : "Master Tables", "type" : "PROCESSOR", "outputStreams" : 1, "elementType" : "TABLE", "name" : "Inventory",

我有一个控制器

$scope.operationData = [
  {
         "label" : "Inventory",
         "labelType" : "Master Tables",
         "type" : "PROCESSOR",
         "outputStreams" : 1,
         "elementType" : "TABLE",
         "name" : "Inventory",
               "columns": [
                               {
                              "columnName": "InvoiceName",
                              "dataType": "varchar",
                              "label": "Invoice Name",
                              "required": false,
                              "keyType":"PK"
                           },
                           {
                              "columnName": "InvoiceDate",
                              "dataType": "varchar",
                              "label": "Invoice Date",
                              "required": false
                           }
                          ]
   },{
       "label" : "Order",
       "labelType" : "OutPut Tables",
       "type" : "PROCESSOR",
       "outputStreams" : 1,
       "elementType" : "TABLE",
       "name" : "Order",
       "columns": [
                       {
                      "columnName": "OrderName",
                      "dataType": "varchar",
                      "label":  "Order Name",
                      "required": false
                   },
                   {
                      "columnName": "OrderDate",
                      "dataType": "varchar",
                      "label": "Order Date",
                      "required": false
                   }
                  ]
 },
 {

     "label" : "Purchase Order Details",
     "labelType" : "OutPut Tables",
     "type" : "PROCESSOR",
     "outputStreams" : 1,
     "elementType" : "TABLE",
     "name" : "Purchase Order Details",
           "columns": [
                           {
                          "columnName": "PurchaseOrderName",
                          "dataType": "varchar",
                          "label":  "Purchase Order Name",
                          "required": false,
                          "keyType":"PK"
                       },
                       {
                          "columnName": "PurchaseOrderDate",
                          "dataType": "varchar",
                          "label": "Purchase Order Date",
                          "required": false
                       }
                      ]
 }];
我的观点是

<select class="form-control col-lg-2" ng-model="sourceTable"
         ng-options="tabelName.label for tabelName in operationData"
         ng-change="getOperationColumns(sourceTable)">
<option value=""> Source Tables</option>
 </select>



<select class="form-control col-lg-2" ng-model="sourceColumn"
         ng-options="column in operationColumn">
<option value="">Source Columns</option>
 </select>

源表
源列
这里我附加了JSFIDLE链接

我的要求是,当我选择sourcetables时,我必须只显示source column下拉列表中的列,我使用的是ng change函数,但没有获得该功能

选择标签-库存的示例 我想在sourcecolumns下拉列表中选择InvoiceName和InvoiceDate, 如果我选择标签订单我希望在源列中选择订单名称、订单日期

请帮我做这个。

试试这个

$scope.getOperationColumns=函数(sourceTable){
$scope.operationColumn=[]
console.log(sourceTable.label,“sourceTable”)

对于(var i=0;iya)它正在工作,但当我选择option value=“”(源列)时,最后选择的表列是现有列下拉列表。添加“$scope.operationColumn=[];'在“$scope.getOperationColumns”方法的第一行,更新了ans中的$scope.getOperationColumns方法。@SoumyaGangamwar:很高兴提供帮助,欢迎使用堆栈溢出。如果此答案或任何其他答案解决了您的问题,请将其标记为已接受。
$scope.getOperationColumns = function (sourceTable) {
        $scope.operationColumn = []
        console.log(sourceTable.label, 'sourceTable') 
        for(var i=0; i<$scope.operationData.length; i++) {
            console.log($scope.operationData[i].label,'operation label')
            if(sourceTable.label === $scope.operationData[i].label) {
                for(var j=0;j<$scope.operationData[i].columns.length; j++) {
                    $scope.operationColumn=$scope.operationData[i].columns // UPDATED HERE
                }
            }
            //console.log($scope.operationColumn, '$scope.operationColumnfor')
        }

        console.log($scope.operationColumn, '$scope.operationColumn')

     }
<select class="form-control col-lg-2" ng-model="sourceColumn"
             ng-options="column.columnName for column in operationColumn">
    <option value="">Source Columns</option>
     </select>