我真正想要的是
@Component {
selector: myDomNode
...
}
class MyComponent {};
在某种程度上,我可以随时在任何domNode上启动MyComponent。理想情况下,它应该由构造函数(即new MyComponent(myDomNode);
或类似的)完成。
在第一点上看到的是,选择器必须始终是字符串,据我所知,这里我们不能给出任何不同的对象。此外,装饰在包初始化时间内执行,同样不是很好。
目标是在一个庞大,复杂且绝对不是角度友好的Javascript应用程序中嵌入一个简单的角度小部件。
经过一些尝试后,我发现如果不深入挖掘角度核心可能并不容易。
我目前最好的想法是使用这样一个事实,即装饰器本质上是Javascript级别的函数,因此我可以调用一些像
Component({...selector: myDomNode...})(MyComponent)
但网上到处都缺少确切的语法。
也许我可以使用myDomNode
向attr()
提供随机生成的ID,然后将Component
装饰器作为selector: '#' + id
函数调用。但它看起来很脏,我认为还应该存在一种更有棱角的方式。这就是我的想法:
let domId:string=assets.rand128();
domNode.attr('id', domId);
MyCurrentComponent = Component({... selector: '#' + id, ...})(MyComponent);
除此之外,我认为这是一个非常简单的功能,因此这样一个复杂的框架应该真正使用它。
有可能吗?也许有一些解决方法或技巧可以达到同等效果?