【问题标题】:How do I watch elements of an AngularDart collection?如何查看 AngularDart 集合的元素?
【发布时间】:2014-01-06 17:03:30
【问题描述】:

我有一个模型:

class WordList {
  List<Word> words = [];
}

它是通过依赖注入到我的一个视图中创建的。

@NgController(
    selector: '[list-ctrl]',
    publishAs: 'ctrl'
)
class ListCtrl {
  WordList wordList;
  Scope scope;

  ListCtrl(this.router, this.wordList, this.scope) {
    scope.$watchCollection("", onChange );
  }

每当从该列表中修改项目时,我想运行一些逻辑。我该如何做到这一点?

我相信关键在于 $watchCollection,但我不知道要传递什么作为 watch 表达式。 “ctrl.wordList.words”会告诉我何时添加/删除项目,但未更改。

【问题讨论】:

    标签: dart angular-dart


    【解决方案1】:

    $watchCollection 正如您所指出的,只能观察List 的变化,而不是列表项目的变化。这样做的原因是,观察每个对象都会有爆炸性的属性数量。

    scope.$watch(() => wordList, onChange);
    

    您可以实现onChange 方法,它会在每个新项目上创建更多监视,并从集合中取消注册删除项目时的监视。

    【讨论】:

    • 我有类似的问题,但这个答案似乎不是最新的。 $watch 现在只是 watch。此外,() =&gt; wordList 不再是有效的表达式。您能否更新此答案以反映 Angular Dart 的最新更改?我需要深入观察地图,希望这会有所帮助。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 2012-10-31
    • 2021-10-22
    相关资源
    最近更新 更多