我需要具有可以具有零(0
)值的屬性Riot.js 2:屬性與falsy值
防暴模板:
<my-tag time="{ time }">
this.time = condition ? '10' : '0'
</my-tag>
期望的結果:
<my-tag time="0"></my-tag>
但是,Riot會自動忽略整個屬性,如果它具有falsy值:
<my-tag></my-tag>
我目前的解決方法:
this.on('updated',() => {
$(this.root).attr('time', this.time)
})
換句話說,我需要time
屬性有time
財產的確切價值。
編輯:
貌似自從2.2.4這種情況已經改變。
此按預期工作 - 這兩個標籤都呈現屬性time
與根據價值
失敗 - 標籤與屬性設置爲false
有全屬性中刪除
我不知道,你可以把定義中的自定義標籤上的表達式。你不能把表達式放在一些內部節點上嗎?此外,如果它們的值爲falsy,則只會刪除布爾屬性(例如,checked,selected)(http://riotjs.com/guide/#expressions)。 – Antoine
@Antoine:是的,你可以在自定義標籤中放置表達式。它可以作爲例外。將它放在一些內部節點上具有相同的效果。 –
這很奇怪,我不能重現兒童節點上的問題(使用v2.2.4,而不是最新的)。我沒有使用編譯器(類似於gihrig的工作流程),所以我無法測試標籤本身。 – Antoine