Угловая область видимости ui-grid. $ Apply не работает в пользовательской директиве

0

Я использую 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 не работает.

Любая помощь очень ценится.

Теги:
angular-ui-grid

1 ответ

0

Проблема в том, как вы обращаетесь к строке.

Это должно быть row.entity не row.entity._id.

Plunker

Если вы хотите получить свойство в строке, вы можете сделать это в своей функции, но вы не можете передать объект строки функции функции.

$scope.deleteProductFn = function(entity) {
  //If you want to get to a property on the row entity
  //get it here:
  console.log(entity._id);
};
  • 0
    Вы видели вторую строку в функции ссылки var clickAction = attr.confirmedClick;
  • 1
    @pankajparkar LOL Нет, пропустил это. Я думаю, что мне нужно кофе первым утром. Спасибо за второй набор глаз.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню