如何刷新过滤后的 aurelia repeat.for 绑定
How to refresh filtered aurelia repeat.for binding
给定一个 class 的项目列表绑定到视图中的多个列表,修改元素时刷新视图的推荐方法是什么?
我是删除旧项目并添加新项目、引发事件还是其他?
export class Model {
items: Item[];
filter1 = x => x.isActive;
filter2 = x => x.Value > 5;
modifyItem(item) {
item.isActive = true;
item.Value = 22;
}
}
<template repeat.for="item of items | filter:filter1">...</template>
<template repeat.for="item of items | filter:filter2">...</template>
您可以使用 signal binding behavior 通知它某些内容已更改并且需要刷新过滤器:
<template repeat.for="item of items | filter:filter1 & signal:'item-modified'">...</template>
在你的组件中:
import {BindingSignaler} from 'aurelia-templating-resources';
import {autoinject} from 'aurelia-framework';
@autoinject()
export class Model {
items: Item[];
filter1 = x => x.isActive;
filter2 = x => x.Value > 5;
constructor(private signaler: BindingSignaler) { }
modifyItem(item) {
item.isActive = true;
item.Value = 22;
signaler.signal('item-modified');
}
}
给定一个 class 的项目列表绑定到视图中的多个列表,修改元素时刷新视图的推荐方法是什么?
我是删除旧项目并添加新项目、引发事件还是其他?
export class Model {
items: Item[];
filter1 = x => x.isActive;
filter2 = x => x.Value > 5;
modifyItem(item) {
item.isActive = true;
item.Value = 22;
}
}
<template repeat.for="item of items | filter:filter1">...</template>
<template repeat.for="item of items | filter:filter2">...</template>
您可以使用 signal binding behavior 通知它某些内容已更改并且需要刷新过滤器:
<template repeat.for="item of items | filter:filter1 & signal:'item-modified'">...</template>
在你的组件中:
import {BindingSignaler} from 'aurelia-templating-resources';
import {autoinject} from 'aurelia-framework';
@autoinject()
export class Model {
items: Item[];
filter1 = x => x.isActive;
filter2 = x => x.Value > 5;
constructor(private signaler: BindingSignaler) { }
modifyItem(item) {
item.isActive = true;
item.Value = 22;
signaler.signal('item-modified');
}
}