ng-click无法与ng-bind-html配合使用

3

I have html template like this:

$scope.template = '<span class="pointer"><i class="icon-refresh pointer" ng-click="refresh()"></i></span>';

我想使用 ng-bind-html 绑定此模板,我尝试使用它并且还使用了 ng-bind-html-unsafe,但不幸的是它会将 HTML 字符串直接绑定而没有点击操作。

<span ng-bind-html="template"></span>
<span ng-bind-html-unsafe="template"></span>

我看到了类似的问题,文章说ng-click会在ng-bind之后加载,所以有人能介绍一下如何解决这个问题吗?


1
Angular让这件事情变得如此困难,这正是为什么你不应该这样做的原因。HTML不属于控制器。通过视图引入它。 - CodingIntrigue
为什么需要在JS变量中使用模板? - gkalpak
在我正在工作的项目中,我必须将模板绑定到主视图中的子视图,因此我需要将模板与其函数绑定到所需面板(子视图)中。 - Kareem Elshahawy
你正在使用哪个版本的Angular? - gkalpak
2个回答

2
也许你需要在控制器中编译模板?
angular.controller('ABCDCtrl', function($scope, $compile){
    var templateHTML = '<span class="pointer"><i class="icon-refresh pointer" ng-click="refresh()"></i></span>';
    $scope.template = $compile(templateHTML)($scope);
});

1
你可以尝试使用ng-include,将模板放入静态文件中。将HTML内容放入作用域变量中有点违背了一些Angular哲学准则,我认为。如果您以后要更改模板,是否希望它重新绑定并再次处理?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接