Angular ui-grid scope。$ apply不在custom指令中工作

时间:2015-07-04 09:06:30

标签: angularjs angular-ui-grid

我在我的应用程序中使用ui-grid

我在<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 { } }); } }; }) 来删除该行,为此我使用了以下指令。

CellTemplate:

console.log(msg);

指令

@JsonSerialize(keyUsing = ClassNameSerializer.class)
public static class TreeConfigMap extends HashMap<Class<? extends TreeItem>, Map<String, Object>>{
      //empty
}

这里 ObjectMapper mapper = new ObjectMapper(); SimpleModule simpleModule = new SimpleModule(); simpleModule.addKeySerializer(Class.class, new ClassNameSerializer()); mapper.registerModule(simpleModule); ... mapper.writeValueAsString(treeConfigMap) 在控制台中打印消息但下一行范围。$ apply不起作用。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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);
};