2017-01-30 82 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