如何在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'); 
} 

又见Dart Polymer 1.0 - Two-way binding works?

+0

感谢。试过,但是当它调用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

+0

谢谢。我注意到最新的回应。我正在使用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

+0

很难说。整个项目允许将问题重现为GitHub repo会很好。 –