1

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

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

4

1 回答 1

1

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

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

该表达式将被评估,并且您在 CustomElement 类中定义的任何字段都将使用(参见相关讨论aFieldName的值进行初始化。就我个人而言,我不建议传递像你的登录状态这样的东西,因为它会使你的网站非常容易受到 XSS 攻击......{{expression}}

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

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

于 2013-03-07T08:36:28.383 回答