0
我正在使用最新的2.0-preview
版本的Polymer。我想設置默認屬性,並且Polymer文檔描述了how to do it in Polymer 1.x。我無法在v2.0的這種方法中找到任何更改。但它似乎只對原始的性質,而不是對象的工作:爲什麼默認的嵌套Polymer值不起作用?
"use strict";
class NewElement extends Polymer.Element {
static get is() {
return 'new-element';
}
static get config() {
return {
properties: {
user: {
// type: Object, <-- doesn't help anyway
firstName: {
type: String,
value: "John",
// observer: '_callObserver' <-- FYI observers don't work properly too if this usage...
},
lastName: {
type: String,
value: "Doe"
}
},
position: {
type: String,
value: "Waiter" // <-- will set a high-level default value properly correctly
}
},
// observers: [
// '_callObserver(user.*)' <-- ...but works using this approach
// ]
}
}
constructor() {
super();
console.dir(this); // <-- see screenshots below
// this.user = { firstName: "John", lastName: "Doe" }; <-- works if initialized manually
}
}
customElements.define(NewElement.is, NewElement);
正如你可以看到here有一個getter,當我點擊它,我看到user
field is undefined。
我在做什麼錯?
是的,它的工作原理,謝謝!我試圖理解如何使用Polymer數據系統,並且在創建複雜應用程序時似乎需要嵌套屬性聲明。可能你知道 - 這是否是潛在的問題?聚合物有沒有支持這些聲明的計劃? –
@SergeyNovikov沒問題:)據我所知,沒有計劃。但你想做什麼?如果你想觀察子屬性,這已經可以[複雜的觀察者](https://www.polymer-project.org/1.0/docs/devguide/observers#complex-observers)(例如,'observers:['_firstNameChanged( user.firstName)']')。 – tony19
另外,請注意[數據系統概念](https://www.polymer-project.org/1.0/docs/devguide/data-system)文檔可能通常有用於閱讀(如果您還沒有看到它)。 – tony19