我正在使用此模板來創建通知條目列表,該列表第一次正常工作。飛鏢聚合物更新聚合物dom元素
NoticeList nle = querySelector('#noticeList');
nle.notices = notices;
但我第二次調用這段代碼得到執行,網站根本沒有改變。 我錯過了什麼?
謝謝
<polymer-element name="notice-list">
<template>
<ul id = "noticeEntrys">
<template repeat="{{notice in notices}}">
<li>
<notice-element notice={{notice}}></notice-element>
</li>
</template>
</ul>
</template>
<script type="application/dart" src="notice_list.dart"></script>
</polymer-element>
<polymer-element name="notice-element">
<template>
<div class="notice">
<textarea rows="8" readonly>{{notice.getText()}}</textarea>
<div class="controlls">
<button type="button" name="delete" on-click={{delete}}>Delete</button>
<button type="button" name="change" on-click={{change}}>Change</button>
</div>
</div>
</template>
<script type="application/dart" src="notice_element.dart"></script>
</polymer-element>
@CustomTag('notice-list')
class NoticeList extends PolymerElement {
NoticeList.created() : super.created() {
}
@published List<Notice> notices;
}
@CustomTag('notice-element')
class NoticeElement extends PolymerElement {
NoticeElement.created() : super.created() {
}
@published Notice notice;
void delete(Event e, var detail, Node target) {
Datamanager.removeNotice(notice);
Controller.updateListe();
}
void change(Event e, var detail, Node target) {
Controller.updateActiveElement(notice);
}
void setNotice(Notice n) {
notice = n;
}
}
編輯:我更新的代碼相同,我在第一時間 我通過互聯網服務和新數據獲取新的數據集列表是否正確
static void noticesLoadedPolymerList(List<Notice> notices) {
NoticeList nle = querySelector('#noticeList');
nle.setNotices(notices);
}
編輯2:我添加了一個簡單的整數來顯示列表大小 @observable int listSize; 如果我分配新列表,但顯示的內容沒有更改,值會更改。
能否請你添加的代碼如何創建更新'notices'列表?你提供的代碼看起來很好。 –
@GünterZöchbauer我添加了一些額外的信息,也許它有幫助,因爲我現在很困惑,爲什麼它不工作 – lolsharp
你嘗試'toObservable(通知)'之前分配給聚合物元素?仍然無法看到您創建列表的位置。 –