2014-01-13 175 views
1

我正在用聚合物和飛鏢寫一個示例應用程序,並遇到可觀察屬性的問題。飛鏢和可觀察的屬性

下面是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

感謝你的答案。

+0

嘗試: