我有一个Login
具有LoginState
字段的 web 组件。我想传入一个LoginState
实例,该实例可能在代码的其他部分中设置,并Login
在创建方法之前/期间将其添加到实例中。
这可能吗?如果没有,我的替代方案是什么?我能想到的唯一另一个方法是使用一个全局变量来保存LoginState
实例并引用它,这似乎不是一个好主意。
我有一个Login
具有LoginState
字段的 web 组件。我想传入一个LoginState
实例,该实例可能在代码的其他部分中设置,并Login
在创建方法之前/期间将其添加到实例中。
这可能吗?如果没有,我的替代方案是什么?我能想到的唯一另一个方法是使用一个全局变量来保存LoginState
实例并引用它,这似乎不是一个好主意。
确实有可能,在实例化组件时,使用语法
<x-custom-element a-field-name="{{expression}}"></x-custom-element>
该表达式将被评估,并且您在 CustomElement 类中定义的任何字段都将使用(参见相关讨论)aFieldName
的值进行初始化。就我个人而言,我不建议传递像你的登录状态这样的东西,因为它会使你的网站非常容易受到 XSS 攻击......{{expression}}
也许更好的主意是在您的组件类上公开一个方法,该方法允许您在初始化后设置登录状态。将元素插入 DOM 后,您可以访问元素的字段,query('#myLoginStateId').xtag
然后使用您的登录状态调用公开的方法。
在将元素插入 DOM 之前,您将无法访问元素上的 xtag,因此请确保在元素的 insert() 方法中引发适当的事件,以便应用程序的其余部分知道何时可以安全地设置适当的领域。