首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Polymer.dart中使用列表

在Polymer.dart中使用列表
EN

Stack Overflow用户
提问于 2014-08-08 02:18:11
回答 1查看 191关注 0票数 3

我用了一种聚合物元素。此元素包含一个简单的数字列表,这些数字显示在它们自己的div标记中。元素顶部有一个计数器来显示这个列表中有多少个元素。

最初,元素是正确显示的,但我已经在元素的顶部放置了一个按钮,该按钮应该向列表中添加一个项,并更新计数器。计数器被更新,项被添加到列表中(如打印所示),但是DOM没有被更新。

我是在期待不该发生的事情,还是在这里做错了什么?

代码语言:javascript
复制
<link rel="import" href="packages/polymer/polymer.html">

<polymer-element name="list-test">
  <template>


    <button on-click="{{click}}">Click</button>
    <div>Counter: {{count}}</div>

    <template repeat="{{num in nums}}">
      <div>{{num}}</div>
    </template>


  </template>
  <script type="application/dart">
    import "dart:async";
    import "package:polymer/polymer.dart";

    @CustomTag("list-test")
    class listTest extends PolymerElement {

      listTest.created() : super.created();

      @observable List nums;
      @observable int count;

      void attached() {
        nums = [0];
        count = nums.length;
      }

      void click() {
        nums.add(count++);
        print(nums);
      }
    }
  </script>
</polymer-element>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-08 04:26:18

你需要改变这一行

代码语言:javascript
复制
nums = [0];

代码语言:javascript
复制
nums = toObservable([0]); 

或者最好将其添加到字段初始化程序中。

代码语言:javascript
复制
@observable List nums = toObservable([0]);

否则,只会识别将另一个列表分配给nums,而不会识别列表中的更改。

您的attached方法缺少超级调用

代码语言:javascript
复制
  void attached() {
    super.attached(); // <== added
    nums = toObservable([0]); // <== can be moved to the field initializer
    count = nums.length;
  }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25195154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档