首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >看ObservableList

看ObservableList
EN

Stack Overflow用户
提问于 2015-01-01 15:57:38
回答 1查看 870关注 0票数 0

我有一个

代码语言:javascript
复制
ObservableList<Model> models;

我听取的变化如下

代码语言:javascript
复制
models.listChanges.listen((changes){
      changes.forEach((change){
         print(change);
         List<Model> removedItems = change.removed; //a list of removed objects 
         //how to get a list of the items that have been added?
      });
    });

如何获得已添加项目的列表?

有时我会收到如下通知,索引实际上指的是什么?

代码语言:javascript
复制
#<ListChangeRecord index: 49, removed: [Instance of 'Model', Instance of 'Model'], addedCount: 19>

为了获得添加的项目,我猜是

代码语言:javascript
复制
var addedItems = models.getRange(change.index,change.index+change.addedCount);`

但这真的是正确的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-01 19:24:22

是的,这就是你应该使用的方式。来自ObservableList源代码:

代码语言:javascript
复制
    /// [...]
    ///
    /// Each list change record contains information about an individual mutation.
    /// The records are projected so they can be applied sequentially. For
    /// example, this set of mutations:
    ///
    ///     var model = new ObservableList.from(['a', 'b']);
    ///     model.listChanges.listen((records) => records.forEach(print));
    ///     model.removeAt(1);
    ///     model.insertAll(0, ['c', 'd', 'e']);
    ///     model.removeRange(1, 3);
    ///     model.insert(1, 'f');
    ///
    /// The change records will be summarized so they can be "played back", using
    /// the final list positions to figure out which item was added:
    ///
    ///     #<ListChangeRecord index: 0, removed: [], addedCount: 2>
    ///     #<ListChangeRecord index: 3, removed: [b], addedCount: 0>
    ///
    /// [...]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27732284

复制
相关文章

相似问题

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