将UI网格行数据绑定到cellTemplate中的javascript调用

时间:2017-08-03 11:24:31

标签: javascript angularjs angular-ui-grid celltemplate

我想从UI-Grid cellTemplate调用一个javascript函数,将一些行的实体值作为参数传递。

如果我直接从href调用该函数,它将获得“不安全”前缀。

如果我从onclick属性调用它,它没有正确绑定(虽然没有得到不安全的前置。)

我该如何调用它并使其正确绑定?

href尝试:

columnDefs: [
    { name: "DocNumber", cellTemplate: '<a href=\'javascript:apci.LoadDoc("{{grid.appScope.selectedPayer.PayerRef}}")\'>{{row.entity.DocNumber}}</a>' },
]

onclick尝试:

columnDefs: [
    { name: "DocNumber", cellTemplate: '<a href="#" onclick=\'javascript:apci.LoadDoc("{{grid.appScope.selectedPayer.PayerRef}}")\'>{{row.entity.DocNumber}}</a>' },
]

Angular 1.5.0 UI-Grid 4.0.6

1 个答案:

答案 0 :(得分:1)

我会尝试将..LoadDoc()函数包装在控制器中的函数中,并设置模板如下:

cellTemplate: '<a ng-click="grid.appScope.loadDocFunction(row.entity)>' +
                '{{ row.entity.DocNumber }}' + 
              '</a>"'

在loadDocFunction()中,您可以直接从控制器获取selectedPayer.PayerRef,并按照您的意愿进行操作。

我不太清楚 javascript:apci:LoadDoc()是什么,所以很难更准确地说明如何将它包装好。

角度包装图案的一个简单示例是angular-socket-io