我正在用聚合物和飛鏢寫一個示例應用程序,並遇到可觀察屬性的問題。飛鏢和可觀察的屬性
下面是HTML代碼:
clickcounter.html
<polymer-element name="click-counter">
<template>
<div>
<button on-click="{{increment}}">Click me</button><br>
<span>(click count: {{counter.count}})</span>
</div>
</template>
<script type="application/dart" src="clickcounter.dart"></script>
</polymer-element>
clickcounter.dart
@CustomTag('click-counter')
class ClickCounter extends PolymerElement {
@published Counter counter = new Counter();
ClickCounter.created() : super.created() {
}
void increment() {
counter.count++;
}
}
class Counter {
int count = 0;
}
當我點擊增加按鈕,在counter.count屬性遞增,但即使計數器屬性是可觀察的,也不反映新值編入DOM! 我讀過這個類也必須用@observable或混入與可觀察來註釋,所以我嘗試:
@observable
class Counter {
int count = 0;
}
和
class Counter with Observable {
int count = 0;
}
但既不這些解決方案的工作!唯一的工作方式是註釋每個屬性,如下所示:
class Counter {
@observable int count = 0;
}
我認爲註釋類本身與註釋所有屬性相同。所以任何人都可以解釋爲什麼它不起作用,以及什麼是使觀察類可見的正確方法,以便任何更改都會反映在DOM中?
ENV:
聚合物0.9.3 /聚合物表達式0.9.1 /達特編輯器版本1.0.0_r30798(STABLE)/達特SDK版本1.0.0.10_r30798
感謝你的答案。
嘗試:在你有counter.count的模板中 –
可能的重複[在聚合物項目上獲取錯誤轉換dart2js](http://stackoverflow.com/questions/20855777/getting-error-converting- dart2js-on-polymer-project) –
Paul你可以給出一個的鏈接:我已經看到了這種代碼,但是直到現在我還是找不到一篇解釋它做什麼的文章!這裏提到的是 –