小编Gae*_*aet的帖子

更改集合时不会触发 Aurelia CollectionObserver 处理程序

我有一个 Aurelia 组件,它只是应该显示项目列表。组件的模型有一个可绑定的“items”属性:

@bindable items = [];
Run Code Online (Sandbox Code Playgroud)

组件模板使用简单的重复属性显示列表:

 <div repeat.for="item of items">  
    ${item.id}   </div>
Run Code Online (Sandbox Code Playgroud)

当我从使用该组件的页面视图模型中将新项目推送到绑定数组中时,我可以看到在刷新列表并出现新项目时添加了该项目。我的问题是,当修改“items”数组时,我需要执行其他操作,因此我尝试将 collectionObserver 添加到组件中,如下所示:

import {BindingEngine, inject} from 'aurelia-framework';

@inject(BindingEngine) 
export class GridControl {   

  @bindable items = [];

  constructor(bindingEngine) {
    this.items = []; 
    let subscription = bindingEngine.collectionObserver(this.items)
                                    .subscribe(this.listChanged);   
  }

  listChanged(splices) {
    // do some stuff   
  } 
}
Run Code Online (Sandbox Code Playgroud)

但是我的“listChanged”处理程序永远不会被调用。知道为什么吗?

web-component typescript aurelia

2
推荐指数
1
解决办法
772
查看次数

标签 统计

aurelia ×1

typescript ×1

web-component ×1