Javascript 当可观测字段为空时获取错误

Javascript 当可观测字段为空时获取错误,javascript,knockout.js,Javascript,Knockout.js,我正在使用以下语法创建一个对象 $scope.headerVal = { 'usercode': $rootScope.usrCrdntls.getLoginUcode(), 'venue': data.VENUECODE(), 'symbol': data.SECURITYCODE(), 'expirydate': data.EXPI

我正在使用以下语法创建一个对象

$scope.headerVal = {
                    'usercode': $rootScope.usrCrdntls.getLoginUcode(),
                    'venue': data.VENUECODE(),
                    'symbol': data.SECURITYCODE(),
                    'expirydate':  data.EXPIRATIONDATE(),             
                    'option': data.CALLPUT(),
                    'strikeprice': data.STRIKEPRICE()


            };

其中数据由可观察字段组成。但在某些情况下,EXPIRATIONDATE不是出口。因此,出现了错误。如何摆脱这个错误我没有足够的理由添加评论。所以只需添加我的评论作为答案

我没有太多关于knockout.js的信息。但下面应该是可行的

$scope.headerVal = {
                'usercode': $rootScope.usrCrdntls.getLoginUcode(),
                'venue': data.VENUECODE(),
                'symbol': data.SECURITYCODE(),
                'option': data.CALLPUT(),
                'strikeprice': data.STRIKEPRICE()
        };
if (data.EXPIRATIONDATE){
      $scope.headerVal.expirydate = data.EXPIRATIONDATE();
}

为字段添加额外的检查。希望有帮助。

您可以检查如下错误情况:

'expirydate':  function() {
  if( data.hasOwnProperty(EXPIRATIONDATE())) {
    return data.EXPIRATIONDATE();
  }
  else {
  return false;
  }
}

如果您想要一个班轮:

       $scope.headerVal = {
                'usercode': $rootScope.usrCrdntls.getLoginUcode(),
                'venue': data.VENUECODE(),
                'symbol': data.SECURITYCODE(),
                'expirydate':  data.EXPIRATIONDATE && data.EXPIRATIONDATE(),             
                'option': data.CALLPUT(),
                'strikeprice': data.STRIKEPRICE()
        };