当observable字段为空时获取错误

时间:2015-03-12 13:24:13

标签: javascript knockout.js

我正在使用以下语法

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


            };

数据由可观察字段组成。但在某些情况下,EXPIRATIONDATE()不会退出。结果,出现了错误。我如何摆脱这个错误

3 个答案:

答案 0 :(得分:0)

我没有足够的意见来添加评论。所以只需将我的评论添加为答案。

我没有关于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();
}

添加对该字段的额外检查。希望它有所帮助。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

如果你想要单行:

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