在Polymer 0.10.1之前,@published
批注在声明它的Polymer元素上创建了一个属性。
随聚合物0.11.0改变。从那时起,需要@PublishedProperty(reflect: true)
来使字段值可用作属性。
似乎自此更新以来@published
与@observable
具有相同的效果。我想念什么吗?
最佳答案
@published
属性仍然允许您声明性地将值用作HTML中的属性。那你仍然可以做:
<my-element myprop="{{hello}}"></my-element>
所做的更改是通过
attributes
属性以过程方式访问值,然后必须包括@PublishedProperty(reflect: true)
。 (如果您直接与CustomTag类进行交互,则情况并非如此。需要
@PublishedProperty(reflect: true)
:var x = querySelector('x-foo');
x.bar = "hi";
// ...
print(x.attributes["bar"]);
这也需要
@PublishedProperty(reflect: true)
:/* CSS */
x-foo[bar="hi"] { background-color: blue; }
这不是:
XFoo x = querySelector('x-foo');
x.bar = "hi";
...
print(x.bar);
这是从New Polymer Release 0.12.0讨论组得出的
关于dart - @observable和@published有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25769768/