如何在创建WebComponent时将变量传递给WebComponent?

时间:2013-03-07 03:09:37

标签: dart dart-webui

我有一个包含Login字段的web组件LoginState。我想传入一个LoginState实例,可以在代码的其他部分设置,并在创建的方法之前/期间将其添加到Login实例。

这可能吗?如果没有,我的替代方案是什么?我能想到的唯一另一个是使用一个包含LoginState实例和引用的全局变量,这似乎不是一个好主意。

1 个答案:

答案 0 :(得分:1)

在实例化组件时,确实可以使用语法

<x-custom-element a-field-name="{{expression}}"></x-custom-element>

将评估表达式,并且您在CustomElement类中定义的名称为aFieldName的任何字段都将使用{{expression}}see relevent discussion)的值进行初始化。就个人而言,我不建议传递像你的loginstate这样的东西,因为它会使你的网站对XSS攻击感到难以置信......

或许更好的想法是在组件类上公开一个方法,允许您在初始化后设置登录状态。将元素插入DOM后,您可以使用query('#myLoginStateId').xtag访问元素的字段,然后使用登录状态调用公开的方法。

在元素插入DOM之前,您将无法访问元素上的xtag,因此请确保在元素的inserted()方法中引发相应的事件,以便应用程序的其余部分知道它何时是安全的设置适当的字段。