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/fire 中找不到 AngularFireModule 和 AngularFireDatabaseModule