我剛剛學習聚合物(1.0),請耐心等待。聚合物1.0對屬性的奇怪行爲
我使用express.js返回的JSON.stringified項目的部分陣列和換他們每個人,所以結果是如下(HTML):
<fighter-profile fighter="{"country":"USA","countryFullName":"United States","name":"Frank Mir","nickname":"","zuffa_record":{"wins":"15","losses":"9","draws":0,"no_contest":0}}"></fighter-profile>
似乎醜陋地獄,但那是json。
這裏是我的組件:
<dom-module id="fighter-profile">
<template>
<div>
<paper-item>
<paper-item-body two-line>
<div>{{fighter.name}}</div>
<div secondary>{{nickname}}</div>
<div>
<paper-button raised on-click="handleClick">Show nickname</paper-button>
</div>
</paper-item-body>
</paper-item>
</div>
<br />
<hr />
<br />
</template>
<script>
Polymer({
is: 'fighter-profile',
properties: {
fighter: Object,
nickname: {
type: String,
value: 'testing'
}
},
ready: function() {
this.nickname = (this.fighter.nickname !== '') ? this.fighter.nickname : '... the dude has no nickname!';
},
handleClick: function() {
alert(this.nickname);
}
});
</script>
</dom-module>
現在,有趣的部分:名稱被正常顯示,而在那裏我有<div secondary>{{nickname}}</div>
,結果在HTML簡直是{{nickname}}
;不過,如果我點擊按鈕,我會得到正確的值。
我在這裏錯過了什麼?
UPDATE:
我GOOGLE了一些東西,換成ready
法created
,當然,也沒有工作,因爲created
我認爲是聚合物0.5版本的一部分。然後我切換回ready
方法,現在一切正常。很奇怪。
什麼似乎是問題?一些緩存出錯了?一個錯誤?
更新2:
我又改變了一些東西,這是行不通的,但現在我已經想通了如何複製錯誤。所以,這段代碼不能正常工作:
<div secondary>The dude is also known as {{nickname}}</div>
結果是字面上的 「{{暱稱}}」
然而,這正常工作:
<div secondary>The dude is also known as <span>{{nickname}}</span></div>
結果是實際暱稱。
因此,將span
標記中的屬性正確呈現。這是怎麼回事?
ahh yes!現在這一切都有意義,特別是對HTML部分的綁定屬性。是的,這些數據是通過handleBars的{{#each}}'部分(通過express.js)動態收集的,所以我無法對JSON做太多的瞭解。現在是「觀察員」部分;我不需要那樣做,而且它仍然有效......請您澄清一下該做什麼,或者我該如何重新創建一個場景 - 如果沒有那部分 - 情況就不起作用?謝謝。 – uglycode
啊,你正在循環服務器端的數據。在這種情況下,我關於原始JSON與綁定的評論將不適用,並且數據將立即在'ready'中可用。我已經更新了我的答案,以澄清這個場景,現在它顯示了一個常見的'dom-repeat'用例來循環客戶端數據。 – Zikes
謝謝!最後一個問題,然後我可以輕鬆接受你的答案:是否有這樣的文件?我沒有看到'as =「someValue」'的情況,官方文檔只有''。 – uglycode