我有一个Web组件Login
,其中有一个LoginState
字段。我想传递一个LoginState
实例(可以在代码的其他部分进行设置),然后将其添加到Login
实例中,然后再创建方法。
这可能吗?如果没有,我有什么选择?我唯一能想到的是使用一个全局变量来保存LoginState
实例并对其进行引用,这似乎不是一个好主意。
最佳答案
的确,在实例化组件时,可以使用以下语法
<x-custom-element a-field-name="{{expression}}"></x-custom-element>
该表达式将被求值,并且您在CustomElement类中定义的名称为
aFieldName
的任何字段都将使用{{expression}}
(see relevent discussion)的值初始化。就个人而言,我不建议传递类似您的登录状态的信息,因为它会使您的站点极易受到XSS攻击的侵害...也许更好的主意是在组件类上公开一个方法,该方法允许您在初始化后设置登录状态。将元素插入DOM之后,可以使用
query('#myLoginStateId').xtag
访问元素的字段,然后以登录状态调用公开的方法。在将元素插入到DOM中之前,您将无法访问该元素上的xtag,因此请确保在元素的insert()方法中引发一个适当的事件,以便应用程序的其余部分知道何时可以安全地设置适当的 Realm 。