2017-01-30 131 views
-1

我已经完成了我的第一个角度应用程序。调用函数时出错。 这里是我的JSON的一个片段:Angular找不到变量:data

{ 

    "variantA": { 
    "sumInsuredThirty": [ 
     { 
     "dayFrom": 1, 
     "dayTo": 3, 
     "tarif": 2 
     }, ... 

我已经通过了它:

$http.get("/CalculatorMed/JSON/rates.json/").then(function(data) { 
     $scope.rates = data.data; 
     }); 

现在,我试图让价格:

$scope.getBaseTarif = function() { 
     var baseTarif = 0; 
     if (data.pickedOptions.variantA === true && data.pickedOptions.sumInsured === 30000) { 
      for (var i = 0; i < rates.variantA.sumInsuredThirty.lenght; i++) { 
       if (data.pickedOptions.days >= rates.variantA.sumInsuredThirty[ i ].dayFrom && data.pickedOptions.days <= rates.variantA.sumInsuredThirty[ i ].dayTo) { 
        baseTarif = rates.variantA.sumInsuredThirty[ i ].tarif; 
        return baseTarif; 
       } 
      } 
     } 
     }; 

我有错误:

错误:找不到变量:data getBaseTarif @http://localhost:63342/CalculatorMed/controller/calculator.js:34:17 fn

非常感谢提前!

+0

由于您的错误说:**什么是数据**它不应该是'$ scope.rates'? – Mistalis

+0

。长度拼写不正确 – MMK

+0

也应该是$ scope.rates = data; – MMK

回答

1

数据不能访问外,它应该是$ scope.rates,

if ($scope.rates.pickedOptions.variantA === true && $scope.rates.pickedOptions.sumInsured === 30000) { 
      for (var i = 0; i < rates.variantA.sumInsuredThirty.length; i++) { 
       if ($scope.rates.pickedOptions.days >= rates.variantA.sumInsuredThirty[i].dayFrom && $scope.rates.pickedOptions.days <= rates.variantA.sumInsuredThirty[i].dayTo) { 
        baseTarif = rates.variantA.sumInsuredThirty[i].tarif; 
        return baseTarif; 
       } 
      } 
     } 
+0

谁是下来选民?这是我想的正确答案。下来选民,请把你的理由在这里,以改善答案。 –

+0

@Sajeetharan,谢谢!我自己在学习JS/AngularJS ...错误已经消失,但是我的函数没有返回所需的项目.. –

+0

@ P.Shustenko您可能需要调试并检查 – Sajeetharan