第一课,我的班级:
export class FooBar {
...
isFavorite: boolean = false;
constructor() {
this.isFavorite = false;
}
}
使用Lodash,我对FooBar
的列表进行了排序,因此我的收藏夹位于列表的顶部:
this.fooBars = _.orderBy(this.fooBars, ['isFavorite', 'name'], ['desc', 'asc']);
当我喜欢一个项目并查看我的console.log时,它指出:
请注意,#3没有isFavorite属性...
每当我从不设置isFavorite
时,它不会显示。这使Lodash发生了错误的事情。
有没有办法始终显示此属性,即使它未使用/未设置/为假?
我尝试过:
-在类中将该属性设置为false
-在类的构造函数中将属性设置为false
-在我的组件中循环this.foobars
,并将它们全部设置为false
-将接口添加到FooBar
答案 0 :(得分:0)
我认为这是默认的类专有性的typeScript方法
export default class FooBar {
constructor(private isFavorite: boolean = false) {
...
}
}
或者简单地
export class FooBar {
constructor() {
this.isFavorite = false;
}
}
或者您可以在_.orderBy
iteratee中使用一个函数对列表进行相应的排序:
var foobars = [{isFavorite:false, name:"aaa"}, {isFavorite:true, name:"bbb"}, {isFavorite:false, name:"ccc"}, {name:"ddd"}]
foobars = _.orderBy(foobars, [function(foobar) {
return foobar.isFavorite == true;
}, "name"], ["desc", "asc"]);
console.log(foobars)
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.10/lodash.min.js"></script>