如何在Dart +聚合物1.0中使用dom-repeat进行简单的数据绑定?
问题描述:
我的大脑很痛。 (抱歉,我不知道js)。如何在Dart +聚合物1.0中使用dom-repeat进行简单的数据绑定?
对于我简单的例子/学习曲线,在我的HTML文件我有:
<template is="dom-repeat" items="{{datalist}}" as="item">
{{item}}<br>
</template>
,并在DART文件:
@reflectable
List<String> datalist = new List();
void rebuildDatas() {
datalist.clear();
datalist.add('hello');
}
不显示 '你好'。但是,如果我定义:
@reflectable
List<String> data= ['one','two'];
'一' 和 '二' 是成功上市。
请问我该如何做动态更新data
?
(rebuildDatas()
叫做当然!)
感谢
史蒂夫
答
聚合物的版本使用的是不支持复合绑定。 这在聚合物1.2(JS)或聚合物飞镖1.0.0-RC.5中发生了变化。
最好的动作是升级;临时解决办法是改变这种结合跨越标签的全部文本内容:
<template is="dom-repeat" items="{{datalist}}" as="item">
<span>{{item}}<span><br>
<!-- or <div>{{item}}<div> -->
</template>
您需要使用聚合物API更新属性值,以便聚合物认识的变化和更新的约束值:
@property
List<String> datalist = new List();
void rebuildDatas() {
clear('datalist');
add('datalist', 'hello');
}
感谢。试过,但是当它调用clear()时,在_allocateInvocationMirror中,argumentsDescriptor列表是[1,1,null]。从“polymer_base.dart”第336行,我看到“评估:源”:警告:第2行pos 16:unbalanced'['此处打开 JSON.stringify([path,0,jsElement,null,2) ^ 'evaluate:source':error:line 2 pos 44:unbalanced')' JSON.stringify([path,0,jsElement,null,2)。 Steve ^ – Lymp
谢谢。我注意到最新的回应。我正在使用polymer_elements:^ 1.0.0-rc.3 polymer:^ 1.0.0-rc.6 当它调用clear('datalist')时,我得到Exception:Uncaught Error:TypeError:无法读取属性'splice'未定义 堆栈跟踪: #0 JsObject._callMethod(镖:JS:678) #1 JsObject.callMethod(镖:JS:618) #2的HtmlElement&PolymerMixin&PolymerBase.clear(包:polymer_interop/SRC/polymer_base.dart:332: 15) – Lymp
很难说。整个项目允许将问题重现为GitHub repo会很好。 –