2016-09-25 41 views
1

我有一個自定義元素,可在頁面上生成較大的每月日曆。這是用一對嵌套的dom重複創建的,外部的每個星期提供一個月的每個星期,內部的提供一週內的日期。最初這開始是非常空的,但隨後ajax請求會返回填充模型的數據,從而爲每一天提供更多的數據。當用戶點擊其中一天(剛開始實施時),打開一個對話框,提供有關該特定日子的更多信息。我可以將此對話框放置在適當的一天旁邊,因爲輕擊事件將輕擊的目標作爲屬性,並且可以將其傳遞給紙對話框的positionTarget屬性。我在別處做過這件事,它很有用。尋找與dom-repeat的特定實例相關聯的元素

在這種特殊情況下,特定的日子可以通過url中的可選參數來選擇,由app-route解析。所以我也想打開對話框,正確定位,當輸入一個特定的網址。

我可以很容易地找到用於日曆的模型中的底層記錄,但問題是如何找到與模型的特定部分關聯的元素。

回答

1

事實證明,對此的解決方案相對容易。

在要獲取其實例的元素上公開一個意味着某種內容的屬性,並且該屬性的每個副本都具有唯一的值。在我的情況下,它是「日期」

,所以我有這樣的事情(簡體)

<template is="dom-repeat" items="{{week}}" as="day"> 
    <li urlday$="[[day.date]]"> ... </li> 
</template> 
在我的代碼來選擇打開我做

this.$.mydialog.positionTarget = this.$$('[urlday="' + date + '"]'); 
this.$.mydialog.open(); 
對話框

然後