Dart 使用角度省道组件,提供自己的实例,而不是调用构造函数

Dart 使用角度省道组件,提供自己的实例,而不是调用构造函数,dart,angular-dart,Dart,Angular Dart,在角省道中,可以创建您自己的组件。如果在html中使用如下自定义标记: angular将通过调用与rating关联的类的构造函数来创建组件,在本例中为new RatingComponent()(如果我没有弄错的话) 我知道您可以添加一些属性来控制它,但是我想知道是否可以提供您自己的实例,而不是调用构造函数。如果我在主控制器中有一个按钮列表,如何实现以下功能: 我有种感觉,我错过了一些显而易见的东西,但我确实四处寻找,却找不到答案 edit(额外澄清):我认为这归结为您是否可以通过angu

在角省道中,可以创建您自己的组件。如果在html中使用如下自定义标记:


angular将通过调用与rating关联的类的构造函数来创建组件,在本例中为new RatingComponent()(如果我没有弄错的话)

我知道您可以添加一些属性来控制它,但是我想知道是否可以提供您自己的实例,而不是调用构造函数。如果我在主控制器中有一个按钮列表,如何实现以下功能:


我有种感觉,我错过了一些显而易见的东西,但我确实四处寻找,却找不到答案

edit(额外澄清):我认为这归结为您是否可以通过angular影响/绕过构造函数的调用。如果只是生成html,那么很容易不用组件,只需使用主控制器(如下所示)生成html,但是如果可能的话,我想使用组件,因为它还有用于沙箱css的阴影dom


您想要类似


通过这种方式,您可以由控制器提供html

不过,您必须创建自己的NgBindHtmlDirective实现(只需几行),因为使用的ngbindhtml的NodeValidator不允许自定义标记(目前)

也许还有更复杂的方法,但我还不太清楚

==编辑===

我认为你试图做的不是安圭拉式的。 您可以在为fancy按钮或输入的属性提供值的模型上重复。 在components类中,您可以访问这些属性,并且可以根据这些属性创建行为和外观


如果在开发时不知道要使用哪种标记,可以使用ng bind html使用代码创建标记

也许我不明白你们的意思,但这个例子是我编造出来的,以表明我的意图。抱歉,没有这样的属性来阻止angular调用构造函数。很抱歉,第一个答案不适合这个问题。我已经编辑了答案。也许有更好的方法可以做到这一点。无论如何,谢谢你的尝试。我特别想找到一种方法来绕过对构造函数的调用。如果这是不可能的,我正在考虑提供一个用于工厂构造函数的参数。然后,工厂构造函数可以返回参数本身。但这当然是一个非常丑陋的解决方案,我不知道如何通过angular影响构造函数调用。我不确定使用ng bind html会有什么帮助,除非我自己生成所有html。我认为您可以在运行时生成标记和属性,从而产生您想要的行为。也许你可以提供一个更具体的例子来说明你想要实现的目标。我的角度知识和想象力仍然非常有限:——|负责fancy button的类可以检查
实例
属性,对其值进行
切换
并做不同的事情。作为另一种可能性,您(可能)可以声明一个组件,该组件根据实例属性的特定值触发<代码>@NgComponent('selector':'fancy-button[instance=unicorn],…)类MyUnicornButton{…}(链接到(java;(doc)并让角度处理器通过反射进行排序。如果这是您的想法,并且如果您感兴趣,我可以尝试一下,如果某些方面可行,我可以发布示例。