【问题标题】:How to do simple data binding with dom-repeat in Dart+polymer 1.0?如何在 Dart+polymer 1.0 中使用 dom-repeat 进行简单的数据绑定?
【发布时间】:2015-11-08 20:34:52
【问题描述】:

我的大脑很痛。 (抱歉,我不懂 js)。

对于我的简单示例/学习曲线,在我的 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() 被调用了!)

谢谢

史蒂夫

【问题讨论】:

    标签: dart dart-polymer


    【解决方案1】:

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

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

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

    您需要使用 Polymer API 更新属性值,以便 Polymer 识别更改并更新绑定值:

    @property
    List<String> datalist = new List();
    
    void rebuildDatas() {
      clear('datalist');
      add('datalist', 'hello');
    }
    

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

    【讨论】:

    • 谢谢。试过了,但是当它调用 clear() 时,在 _allocateInvocationMirror 中,argumentsDescriptor 列表是 [1,1,null]。从“polymer_base.dart”第 336 行,我看到 'evaluate:source': warning: line 2 pos 16: unbalanced '[' opens here JSON.stringify([path, 0, jsElement, null, 2) ^ 'evaluate:来源':错误:第 2 行 pos 44:不平衡 ')' JSON.stringify([path, 0, jsElement, null, 2)。史蒂夫 ^
    • 谢谢。我注意到更新的回复。我正在使用 polymer_elements: ^1.0.0-rc.3 polymer: ^1.0.0-rc.6 当它调用 clear('datalist') 我得到 Exception: Uncaught Error: TypeError: Cannot read property 'splice' of undefined Stack跟踪:#0 JsObject._callMethod (dart:js:678) #1 JsObject.callMethod (dart:js:618) #2 HtmlElement&PolymerMixin&PolymerBase.clear (package:polymer_interop/src/polymer_base.dart:332:15)
    • 很难说。一个允许将问题重现为 GitHub 存储库的整个项目会很棒。
    • 是的,当然。 :) 会做。 (到时候自己可能会发现问题!)S
    • 运行时间不足。我压缩了一个 14kb 的项目。我还没有将东西上传到 Github(但我只是尝试过但失败了)。如何发送 zip?干杯,S
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多