2014-07-03 70 views
1

我可以僅在HTML文件中聲明自定義元素,而在聚合物庫中沒有背後的dart代碼(.dart文件)嗎?聲明HTML中沒有代碼的自定義元素

我想只有自定義元素的html標記。此外,標記可能包含一些內聯dart代碼(例如,初始化代碼和事件處理方法)。可能嗎?

回答

1

編輯

沒有測試過,但我認爲它應該工作

<polymer-element name='my-element'> 
    <template> 
    <div>some content</div> 
    <button on-click='{{clickHandler}}'>click me</button> 
    </template> 
    <script type='application/dart'> 
import 'package:polymer/polymer.dart'; 

@CustomTag('my-element') 
class MyElement extends PolymerElement { 
    MyElement.created() : super.created(); 

    void clickHandler(Event e) { 
    print(e.target.toString()); 
    } 
} 

    </script> 
</polymer-element> 

編輯結束

只需添加屬性noscript

<polymer-element name='my-element' noscript> 
    <template> 
    <div>some content</div> 
    </template> 
</polymer-element> 

在達特從這樣的組分(<polymer-element name='my-other-element' extends='my-element>...)繼承,特別是如果所導出的元件具有相關聯的飛鏢類(在Polymer.js正常工作)不能很好地工作。

+0

Günter,非常感謝!有用!您能否通過在html頁面中使用內聯dart-code的事件處理代碼示例來補充您的答案(如果可能的話)。 – Roman

+0

我不確定你想要什麼。我認爲這個問題是關於沒有代碼的聚合物元素,現在你想要內聯代碼?內聯代碼是組織文件的一種不同方式。使用內聯代碼可以做什麼沒有限制(除了更糟糕的開發人員體驗)。我建議反對它。將代碼嵌入HTML文件的理由是什麼? –

+0

我的問題是關於如何聲明一個沒有.dart文件的自定義元素。我有很多小的自定義元素。我不想爲每個元素(.html和.dart)創建兩個文件。我知道這通常是更糟的開發者體驗。但不是在我的情況。 – Roman