Vuejs中的表过滤器

时间:2017-09-27 07:24:54

标签: javascript ecmascript-6 vue.js vuejs2

我正在vuejs中构建一个小应用程序,我有一个这样的过滤器:

tableFilter: function () {
    const searchTerm = this.search.toLowerCase();
    const searchByType = this.search_by_tag.toLowerCase();
    if(this.contactStore.contactList)
    {
        return this.contactStore.contactList.data.filter((item) =>
            (item.first_name.toLowerCase().includes(searchTerm)
                || (item.last_name !==null && item.last_name.toLowerCase().includes(searchTerm))
                || (item.company.name !==null && item.company.name.toLowerCase().includes(searchTerm))
                || item.email.toLowerCase().includes(searchTerm)
                || (item.address !== null && item.address.toLowerCase().includes(searchTerm))
                || (item.city !== null && item.city.toLowerCase().includes(searchTerm))
                || (item.mobile !==null && item.mobile.toLowerCase().includes(searchTerm)))
        && ((item.profile !==null && item.profile.toLowerCase().includes(searchByType))
            || (item.company.type !== null && item.company.type.toLowerCase().includes(searchByType))
            || (item.company.sub_type !== null && item.company.sub_type.toLowerCase().includes(searchByType))));
    }
},

在这里,我有一个名为item.company的属性,它可以为null,因此在实现时

(item.company.type !== null && item.company.type.toLowerCase().includes(searchByType))

抛出错误:

  

渲染函数出错:“TypeError:无法读取属性'type'的null”

我正在寻找一个解决方案,我可以让if-else找出该项目是否有公司,如果属性可用,那么它可以分别进行过滤。

由于

1 个答案:

答案 0 :(得分:2)

如果您只想修复错误:

set_include_path(get_include_path() . PATH_SEPARATOR . '/<your custompath>');

但是如果你想不按公司过滤,如果它是null:

|| (item.company && item.company.type !== null && item.company.type.toLowerCase().includes(searchByType))