Angular找不到变量:数据

Posted

技术标签:

【中文标题】Angular找不到变量:数据【英文标题】:Angular can't find the variable: data 【发布时间】:2017-06-15 11:39:22 【问题描述】:

我已经完成了我的第一个 Angular 应用程序。调用函数时出错。 这是我的 JSON 的 sn-p:



  "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;
                
            
        
      ;

我有一个错误:

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

提前非常感谢!!

【问题讨论】:

正如你的错误所说:什么是数据?不应该是$scope.rates吗? .length 拼写不正确 也应该是 $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;
                
            
        

【讨论】:

谁是反对者?这是我认为的正确答案。否决投票者,请在此处填写您的理由以改进答案。 @Sajeetharan,谢谢!我正在自学 JS/AngularJS……错误消失了,但我的函数还没有返回所需的项目 .. @P.Shustenko 您可能需要调试和检查

以上是关于Angular找不到变量:数据的主要内容,如果未能解决你的问题,请参考以下文章

在生产模式 Electron + Angular 下找不到 sqlite 文件

Angular 和 Typescript:找不到名称 - 错误:找不到名称

错误找不到模块'@angular/material

Angular - '找不到 HammerJS'

在 @angular/fire 中找不到 AngularFireModule 和 AngularFireDatabaseModule

找不到模块'@schemics/angular/utility/project'