2014-09-28 43 views
1

我定義了兩個鏢聚合物組成部分:一個輸入和一個列表達特交聯聚合物行動Listerners

這看起來有點像這樣:

@CustomTag('input-button') 
class Input extends PolymerElement { 

    @observable String value = ''; 
    Input.created() : super.created(); 

    void blah(Event e, var detail, Node target) { 

     someMethodCallToTheOtherObject(value); 
    } 
} 

和其他元素:

@CustomTag('page-content') 
class PageContent extends PolymerElement { 

    final List<String> values = stuff; 

    PageContent.created() : super.created(); 

    someMethodCallListerningForEventInOtherObject(String value) { 
    values.add(value); 
    } 
} 

如代碼中所示,我試圖設置和ActionListerner,以便當第一個按鈕對象中的一個方法被「解僱」時,它使用給定的參數在第二個對象中調用一個方法。

我知道這可能是一個基本的方面,但我沒有看到這個概念真的很好地記錄在任何地方。任何意見,你可以給我指向正確的方向,將不勝感激。

謝謝!

+1

歡迎來到StackOverflow。請修改您的帖子以包含實際問題。更具體的問題通常會得到最好的答案。 – mjhm 2014-09-28 16:12:07

+0

這將有助於瞭解這些元素如何放置在您的HTML中。 是另一個ShadowDOM中的一個元素,或者是另一個的子元素,還是它們都在另一個Polymer元素的ShadowDOM中,或者它們都只是在入口頁面HTML中? – 2014-09-28 16:29:15

+0

我想更直接的問題是:如何處理聚合物鏢元素的兩個實例之間的相互作用?但幸好,Günter,你的代碼示例正是我所期待的!謝謝! – 2014-09-28 18:05:12

回答

0

您可以查詢一個元素,並添加事件偵聽器

(querySelector(' /deep/ page-content') as PageContent) 
    .someMethodCallListerningForEventInOtherObject(value); 

as PageContent是沒有必要的,但它能夠自動完成。
您還需要導入包含PageContent類的文件才能完成此項工作。

或者您可以使用像core-signals這樣的元素或其他可能的變體,這取決於您的元素如何組織(請參閱我對您的問題的評論)。