将对象直接传递给值转换器,而不是手动将其复制到新对象
Pass an object directly to a value converter instead of manually copying it to a new object
我们正在将对象参数传递给以下 value converter。
export class SortValueConverter {
toView(array, config) {
// do stuff
}
}
我们通过手动将对象复制到新对象来将对象传递给值转换器。
<select value.bind="config">
<option repeat.for="s of sortOptions"
model.bind="s.config">${s.friendlyName}
</option>
</select>
<div repeat.for="u of users | sort:{ prop: config.prop, dir: config.dir}">
我们更愿意直接传递对象。
<div repeat.for="u of users | sort:config">
我们该怎么做?
您应该能够完全按照自己喜欢的方式进行。检查这个例子:https://gist.run/?id=49d1b3acf5fe7d168909a4f49dca152e
MyItem.html
<select value.bind="config">
<option repeat.for="s of sortOptions"
model.bind="s.config">${s.friendlyName}
</option>
</select>
<div repeat.for="u of users | sort:config">
MyItem.js 确保为您的配置设置默认值!
export class MyItem {
users = [];
config;
sortOptions = [
{ config: { propertyName: 'aaa', direction: 'ascending' }, friendlyName: 'aaa' },
{ config: { propertyName: 'bbb', direction: 'descending' }, friendlyName: 'bbb' },
{ config: { propertyName: 'ccc', direction: 'descending' }, friendlyName: 'ccc' }
];
constructor(userRepo: UserRepository) {
this.config = this.sortOptions[0];
}
}
我们正在将对象参数传递给以下 value converter。
export class SortValueConverter {
toView(array, config) {
// do stuff
}
}
我们通过手动将对象复制到新对象来将对象传递给值转换器。
<select value.bind="config">
<option repeat.for="s of sortOptions"
model.bind="s.config">${s.friendlyName}
</option>
</select>
<div repeat.for="u of users | sort:{ prop: config.prop, dir: config.dir}">
我们更愿意直接传递对象。
<div repeat.for="u of users | sort:config">
我们该怎么做?
您应该能够完全按照自己喜欢的方式进行。检查这个例子:https://gist.run/?id=49d1b3acf5fe7d168909a4f49dca152e
MyItem.html
<select value.bind="config">
<option repeat.for="s of sortOptions"
model.bind="s.config">${s.friendlyName}
</option>
</select>
<div repeat.for="u of users | sort:config">
MyItem.js 确保为您的配置设置默认值!
export class MyItem {
users = [];
config;
sortOptions = [
{ config: { propertyName: 'aaa', direction: 'ascending' }, friendlyName: 'aaa' },
{ config: { propertyName: 'bbb', direction: 'descending' }, friendlyName: 'bbb' },
{ config: { propertyName: 'ccc', direction: 'descending' }, friendlyName: 'ccc' }
];
constructor(userRepo: UserRepository) {
this.config = this.sortOptions[0];
}
}