Angularjs 在handsontable中未触发自定义单元格渲染器操作

Angularjs 在handsontable中未触发自定义单元格渲染器操作,angularjs,handsontable,Angularjs,Handsontable,我的表格html如下所示: <hot-table settings="settings" row-headers="rowHeaders" min-spare-rows="minSpareRows" datarows="myData" columns="columns"

我的表格html如下所示:

<hot-table
                     settings="settings"
                      row-headers="rowHeaders"
                      min-spare-rows="minSpareRows"
                      datarows="myData"
                      columns="columns"
                         >
</hot-table>
我的渲染器:

$scope.myRenderer = function(hotInstance, td, row, col, prop, value, cellProperties) {
        var metaId = hotInstance.getDataAtRowProp(row, 'metaId');
        var specificationCode = hotInstance.getDataAtRowProp(row, 'specificationCode');
        if(value && specificationCode) {
            td.innerHTML = '<a ng-click=\"openSpecification('+metaId+','+prop+','+specificationCode+')\">'+value+'</a>';
            console.log(td.innerHTML);
        }
    };
$scope.myRenderer=function(hotInstance、td、row、col、prop、value、cellProperties){
var metaId=hotInstance.getDataAtRowProp(行“metaId”);
var specificationCode=hotInstance.getDataAtRowProp(行“specificationCode”);
if(值和规格代码){
td.innerHTML=''+value+'';
log(td.innerHTML);
}
};

单元格正确渲染,但未触发单击。我甚至尝试了
a href
,但链接也不起作用。看起来我必须做一些类似于
stopPropagation
preventDefault
的事情,但是我应该在哪里以及如何做呢?

这可能太晚了,对您没有多大用处,但是您需要
$compile
$scope
上编译HTML,以便指令绑定到元素。像这样的事情应该可以做到:

$scope.myRenderer = function(hotInstance, td, row, col, prop, value, cellProperties) {
  var metaId = hotInstance.getDataAtRowProp(row, 'metaId');
  var specificationCode = hotInstance.getDataAtRowProp(row, 'specificationCode');
  var value = '<a ng-click=\"openSpecification('+metaId+','+prop+','+specificationCode+')\">'+value+'</a>';
  var el = $compile(value)($scope);

  if (!(td != null ? td.firstChild : void 0)) {
    td.appendChild(el[0]);
  }
  return td;
};
$scope.myRenderer=function(hotInstance、td、row、col、prop、value、cellProperties){
var metaId=hotInstance.getDataAtRowProp(行“metaId”);
var specificationCode=hotInstance.getDataAtRowProp(行“specificationCode”);
var值=“”+值+“”;
var el=$compile(value)($scope);
如果(!(td!=null?td.firstChild:void 0)){
td.appendChild(el[0]);
}
返回td;
};
$scope.myRenderer = function(hotInstance, td, row, col, prop, value, cellProperties) {
  var metaId = hotInstance.getDataAtRowProp(row, 'metaId');
  var specificationCode = hotInstance.getDataAtRowProp(row, 'specificationCode');
  var value = '<a ng-click=\"openSpecification('+metaId+','+prop+','+specificationCode+')\">'+value+'</a>';
  var el = $compile(value)($scope);

  if (!(td != null ? td.firstChild : void 0)) {
    td.appendChild(el[0]);
  }
  return td;
};