如何在Dart+中使用dom repeat进行简单的数据绑定;聚合物1.0?

如何在Dart+中使用dom repeat进行简单的数据绑定;聚合物1.0?,dart,dart-polymer,Dart,Dart Polymer,我的脑子痛。(对不起,我不知道js) 对于我的简单示例/学习曲线,在我的HTML文件中,我有: <template is="dom-repeat" items="{{datalist}}" as="item"> {{item}}<br> </template> {{item}} 在Dart文件中: @reflectable List<String> datalist = new List(); void rebuildDatas() {

我的脑子痛。(对不起,我不知道js)

对于我的简单示例/学习曲线,在我的HTML文件中,我有:

<template is="dom-repeat" items="{{datalist}}" as="item">
  {{item}}<br>
</template>

{{item}}
在Dart文件中:

@reflectable
List<String> datalist = new List();

void rebuildDatas() {
  datalist.clear();
  datalist.add('hello');
}
@可反射
List datalist=新列表();
无效重建(){
datalist.clear();
datalist.add('hello');
}
它不显示“你好”。但如果我定义:

@reflectable
List<String> data= ['one','two'];
@可反射
列表数据=['1','2'];
“一”和“二”已成功列出

请问如何动态更新
数据

rebuildatas()
当然会被调用!)

谢谢


Steve

您使用的聚合物版本不支持化合物绑定。 这在聚合物1.2(JS)或聚合物Dart 1.0.0-rc.5中发生了变化

最好的行动是升级;临时解决方法是更改此绑定以跨越标记的整个文本内容:

<template is="dom-repeat" items="{{datalist}}" as="item">
  <span>{{item}}<span><br>
  <!-- or   <div>{{item}}<div> -->
</template>

{{item}}
您需要使用Polymer API来更新属性值,以便Polymer能够识别更改并更新绑定值:

@property
List<String> datalist = new List();

void rebuildDatas() {
  clear('datalist');
  add('datalist', 'hello');
}
@属性
List datalist=新列表();
无效重建(){
清除(“数据列表”);
添加('datalist','hello');
}

另请参见

谢谢。尝试了,但当它调用clear()时,在_allocateInvocationMirror中,argumentsDescriptor列表为[1,1,null]。从“polymer_base.dart”第336行中,我看到了“evaluate:source”:警告:第2行位置16:不平衡“[”在这里打开JSON.stringify([path,0,jsElement,null,2)^“evaluate:source”:错误:第2行位置44:不平衡”)'JSON.stringify([path,0,jsElement,null,2).Steve^谢谢。我注意到更新的响应。我正在使用聚合元素:^1.0.0-rc.3聚合:^1.0.0-rc.6当它调用clear('datalist')时,我得到异常:未捕获错误:TypeError:无法读取未定义堆栈跟踪的属性“splice:#0 JsObject.\u调用方法(dart:js:678)#1 JsObject.callMethod(dart:js:618)#2 HtmlElement&PolymerMixin&PolymerBase.clear(package:polymer_interop/src/polymer_base.dart:332:15)很难说。一个允许将问题复制为GitHub回购的完整项目将非常好。是的,当然可以。(那时我可能会自己发现问题!)运行时间很短。我有一个14kb的项目压缩。我还没有将内容上传到Github上(但我只是尝试了一下,但失败了)。我如何发送压缩?干杯,干杯