Я использую ui-grid в своем приложении.
Я использую cellTemplate
в columnDefs
для удаления строки, и для этого я использую следующую директиву.
CellTemplate:
<a href ng-confirm-click confirmed-click="deleteProductFn(row.entity._id)"> <i class="fa fa-trash text-danger"></i> </a>
директива
.directive('ngConfirmClick', function () {
return {
link: function (scope, element, attr) {
var msg = attr.ngConfirmClick || "Are you sure want to delete?";
var clickAction = attr.confirmedClick;
element.bind('click', function (event) {
if (window.confirm(msg)) {
console.log(msg);
scope.$apply(clickAction);
}
else {
}
});
}
};
})
Здесь console.log(msg);
напечатать сообщение в консоли, но в строке следующей строки. $ apply не работает.
Любая помощь очень ценится.
Проблема в том, как вы обращаетесь к строке.
Это должно быть row.entity
не row.entity._id
.
Если вы хотите получить свойство в строке, вы можете сделать это в своей функции, но вы не можете передать объект строки функции функции.
$scope.deleteProductFn = function(entity) {
//If you want to get to a property on the row entity
//get it here:
console.log(entity._id);
};
var clickAction = attr.confirmedClick;