我有一个包含Login
字段的web组件LoginState
。我想传入一个LoginState
实例,可以在代码的其他部分设置,并在创建的方法之前/期间将其添加到Login
实例。
这可能吗?如果没有,我的替代方案是什么?我能想到的唯一另一个是使用一个包含LoginState
实例和引用的全局变量,这似乎不是一个好主意。
答案 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()方法中引发相应的事件,以便应用程序的其余部分知道它何时是安全的设置适当的字段。