Dart 创建WebComponent时,如何将变量传递给它?

Dart 创建WebComponent时,如何将变量传递给它?,dart,dart-webui,Dart,Dart Webui,我有一个webcomponentLogin,它有一个LoginState字段。我想传入一个LoginState实例,该实例可以在代码的其他部分中设置,并在创建方法之前/期间将其添加到Login实例中 这可能吗?如果没有,我的选择是什么?我唯一能想到的另一个方法是使用一个全局变量来保存LoginState实例并引用它,这似乎不是一个好主意。在实例化组件时,确实可以使用语法 <x-custom-element a-field-name="{{expression}}"></x-cu

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


这可能吗?如果没有,我的选择是什么?我唯一能想到的另一个方法是使用一个全局变量来保存
LoginState
实例并引用它,这似乎不是一个好主意。

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

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

将对表达式求值,并且在CustomElement类中定义的名为
aFieldName
的任何字段都将使用
{{expression}
()的值进行初始化。就我个人而言,我不建议传递类似于您的登录状态的内容,因为这会使您的站点难以置信地不易受到XSS攻击

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


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

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

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

将对表达式求值,并且在CustomElement类中定义的名为
aFieldName
的任何字段都将使用
{{expression}
()的值进行初始化。就我个人而言,我不建议传递类似于您的登录状态的内容,因为这会使您的站点难以置信地不易受到XSS攻击

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


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

如何引发该事件?请尝试void inserted(){var evt=new Event(“load”);this.dispatchEvent(evt);}在元素的容器上注册一个onLoad事件,并检查(evt.target.xtag)以确保它不为null。理想情况下,您应该使用自定义事件类型,但是……我如何引发该事件?请尝试void inserted(){var evt=new Event(“load”);this.dispatchEvent(evt);}在元素的容器上注册一个onLoad事件,并检查(evt.target.xtag)以确保它不是空的。理想情况下,您可以使用自定义事件类型,但是。。。