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>