如何在Angular中将[ngClass]添加到动态创建的元素中?

时间:2017-11-16 15:46:53

标签: angular

我有一个诺基亚地图插件,需要我使用document.createElement(' div')在地图上创建标记。 我想将这个新div绑定到ngClass,是否有可能在Angular中执行此操作?

如果你知道我试图在这里解释的术语,那将是一个很大的帮助,因为我在Vue和React上做了这样的事情没有问题,我只是无法向谷歌解释(或任何人)我想做什么。

2 个答案:

答案 0 :(得分:1)

是的,你可以通过以下方式实现这一目标

让我们说你已经创建了div之类的

var div = '<div ng-class="yourClassName">Any text here or whatever</div>';

现在,您必须对此元素进行动态编译,以便将其与controller scope绑定,如

  var newDiv= $compile(div)($scope); 

现在,您可以使用任何DOM元素附加它们。例如

$('.anyOtherDivClass').append(newDiv)

这将允许所有事件(如ng-click等)触发动态创建的元素。

聚苯乙烯。别忘了在控制器中注入$compile服务。

希望这有帮助

答案 1 :(得分:0)

将@HostBinding与getter函数一起使用以返回是否应存在一个类。

类似的东西:

@HostBinding("class.newclass") get isInfo() { return this.type === "info" }