AngularJS - 从控制器内添加指令

时间:2014-03-05 08:27:15

标签: angularjs slickgrid

我定义了以下指令:

app.directive('copyExpenditure', function(){
          return {
            restrict: 'A',
            scope: true,
            template: '<button ng-click="copyExpenditure()">click me</button>'
          }
});

如果我将此指令直接添加到html中,它会按预期工作。

<div copy-expenditure></div>

现在我正在控制器中创建一个网格,并希望动态地向每一行添加copyExpenditure指令。对于此任务,我正在使用Slickgrid and a custom Formatter

var LinkFormatter = function (row, cell, value, columnDef, dataContext) {
    var tag = '<div copy-expenditure></div>';
    return tag;
}

但似乎这个自定义格式化程序不是作为指令呈现的,而是仅作为HTMl呈现。知道该怎么办?我的目标只是使用ng-click调用范围函数和LinkFormatter呈现的标记。

1 个答案:

答案 0 :(得分:0)

你应该这样做:

$compile(angular.element('<div copy-expenditure></div>'))($scope);

如果从范围传递了一些值,则在编译后执行此操作:

$scope.$digest();