即使在angular2的控制台中没有包字段,如何使过滤器工作

时间:2018-03-26 14:01:55

标签: javascript angular typescript filter

我有过滤字段,如果有所有包数据,它可以正常工作。 但是这里没有包含某些项目的包裹字段。 我需要根据包名过滤,但现在我收到错误

ERROR TypeError: Cannot read property 'package_id' of undefined

Pipe.ts:

          if(user.package_detail.package_id) {
            if(parseInt(user.package_detail.package_id) !== parseInt(filter[field])) {
              return false;
            }

3 个答案:

答案 0 :(得分:3)

这是因为对于某些数据,user.package_detail未定义。

改变这个:

if(user.package_detail.package_id) { ... }

要:

if(user.package_detail && user.package_detail.package_id) { ... }

答案 1 :(得分:2)

问题在于package_detail。

if(user.package_detail && user.package_detail.package_id)

答案 2 :(得分:2)

你可以这样忽略它们:

if(user.package_detail && user.package_detail.package_id) {
   // no undefined package_detail or package_id here
}