【发布时间】:2014-02-20 11:54:18
【问题描述】:
我正在使用此模板创建一个通知条目列表,第一次可以正常工作。
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);
}
Edit2:我添加了一个简单的整数来显示列表大小 @observable int listSize; 如果我分配新列表但显示的内容没有,则值会更改。
【问题讨论】:
-
您能否添加您如何创建更新
notices列表的代码?您提供的代码看起来不错。 -
@GünterZöchbauer 我添加了一些额外的信息可能会有所帮助,因为我现在真的很困惑为什么它不起作用
-
在将
toObservable(notices)分配给聚合物元素之前,您是否尝试过?仍然看不到您创建列表的位置。
标签: dart dart-polymer