Как вызвать угловое модальное всплывающее окно в строке слика двойным щелчком мыши
У меня есть угловой модал, который работает с отдельной кнопкой, но мне нужно, чтобы она всплывала, когда по строке в сетке щелкают дважды. Как я должен структурировать этот код:
grid.onDblClick.subscribe(function (e, args) {
//make the angular modal popup
});
С угловым модом я обычно просто выбираю элемент dom, затем добавляю ng-click="openModal()" в тег div, но у меня возникают проблемы даже с поиском div в инструментах chrome dev. Есть идеи?
1 ответ
В настоящее время у меня есть slickgrid, обернутый в директиву, что означает, что мой HTML выглядит так:
<div class="gridContainer" ng-controller="EditModalCtrl">
<div class="modalTest" style='width:100%;'>
<div style='width:100%;height:500px;' all-batches-grid></div>
</div>
</div>
В моей директиве slickgrid я имею:
angular.module('epDefaultApp.allBatchesDirective', [])
.directive('allBatchesGrid', [function () {
return {
restrict: 'EA',
link : function(scope, element, attrs){
grid.onDblClick.subscribe(function (e, args) {
$('.addButton').removeClass('addText');
$('#addEditButton').addClass('editButton');
$('.addButton').addClass('editText');
var item = grid.getDataItem(args.row);
scope.openPrefill('lg', item);
});
}
}
}]);
Вот и мой контроллер:
angular.module('epDefaultApp.editModalController', [])
.controller('EditModalCtrl', ['$scope', '$modal', '$log', 'toastr', function ($scope, $modal, $log, toastr) {
$scope.openPrefill = function (size, selectedRowObject) {
$scope.selectedRow = {
vendorName: selectedRowObject[0],
purchaseNumber: selectedRowObject[3],
invoiceAmount: selectedRowObject[6],
invoiceDate: selectedRowObject[10],
invoiceNumber: selectedRowObject[1],
dueDate: selectedRowObject[9],
checkCode: '0',
memo: selectedRowObject[5]
};
}]);
Причина, по которой это работает, заключается в том, что переменная области действия в директиве фактически связана с $ scope в EditModalCtrl. Это происходит, когда мы сначала инициализируем директиву grid в файле HTML.