我有一个像这样声明的Polymer元素(test: {
type: String,
notify: true,
value: 'default test value'
}
)属性:
default test value
如您所见,它的声明默认值为<cw-app></cw-app>
。
最初,当元素添加到页面时:test-changed
正在触发相应的<cw-app test="new value"></cw-app>
事件。
但是,如果我添加元素并为属性设置一个值,如下所示:test-changed
,则最初不会触发{{1}}个事件。
这是一种理想的行为吗?它已被记录在任何地方吗?
答案 0 :(得分:2)
我会说这是预期的行为:
在第一种情况下,test
的值已从null
(无test
属性集)更改为"default test value"
,因此已更改事件被解雇。
在第二种情况下,值在创建时设置为"new value"
。它未被更改,因此没有更改事件。
在GitHub上查看关于Polymer issue page的讨论:
如果您声明
<x-foo id="foo" value="foo"></x-foo>
,则假定值foo将来自&#39;,t.i。来自元素的用户。在配置阶段,Polymer不会向上回显此类数据更改。 (假设元素的值/用户的生产者已经知道这种变化。)另一方面,如果您
<x-foo id="bar"></x-foo>
是默认值 将向上传播。出于同样的原因,x-foo产生了这个 值,x-foo的用户对此没有任何了解。 T.I.默认值不是来自上面(但是来自x-foo)。