如何使用表中的选定数据打开角度模态窗口

时间:2018-08-24 15:22:05

标签: javascript angularjs ui.bootstrap

我需要使用从表格单元格中选择的数据打开模式窗口。现在,使用数据打开了模态,但是模态中的数据属于所有行。我需要从项目选择单元格中选择数据。我有两个数组。一个在另一个。我可以从第一个数组(dataTable)中选择项目,但是那里存在另一个数组(item.arrValues)。我无法从第二个数组中获取选定的数据。如何显示所选单元格中的数据?

此处示例Plnkr

HTML

<table>
	<tbody>
		<tr>
			<td></td>
			<td ng-repeat="i in  vm.dataTable[0].arrValues">{{i.DAY}}</td>
		</tr>
		<tr ng-repeat="item in vm.dataTable">
			<td>{{item.time}}</td>
			<td ng-click="vm.openEvents(item);" ng-repeat="i in item.arrValues">{{i.Value}}</td>
		</tr>											
	</tbody>
</table>

modalContent.html

<div>
  
  <div class="modal-body" style="overflow: hidden;">
     
    <div ng-bind="selected.item.Country"></div>
  
    <!--<div ng-bind="selected.item.arrValues[0].Value"></div>-->
  	
  	<div ng-repeat="i in selected.item.arrValues">{{i.Value}}</div>
  
  </div>

</div>

JS

vm.openEvents = function(item){
	var modalInstance = $modal.open({
		scope: $scope,//
		templateUrl: "modalContent.html",
		controller: ModalInstanceCtrl,
		resolve: {
			item: function() {
				return item;
			},
				
		dataTable: function ($timeout) {
			return vm.dataTable
		}
				
	}
});
 }
  
var ModalInstanceCtrl = function ($scope, dataTable, item) {
	var vm = this;
		
	vm.dataTable = dataTable;
        
	$scope.selected = {
		item: item
	};
}

1 个答案:

答案 0 :(得分:0)

更改<td>以将i传递给函数(在这种情况下,i是单元格中的值):

<td ng-click="vm.openEvents(i);" ng-repeat="i in item.arrValues">{{i.Value}}</td>

更改模式模板以显示selected.item.DAYselected.item.Value

<div>
    <div class="modal-body" style="overflow: hidden;">
        <div ng-bind="selected.item.DAY"></div>
        <div ng-bind="selected.item.Value"></div>
    </div>
</div>

Working PLNKR here.