Arrays AngularJS创建新的$scope,从JSON数组中减去消耗的两个$scope

Arrays AngularJS创建新的$scope,从JSON数组中减去消耗的两个$scope,arrays,json,angularjs,scope,Arrays,Json,Angularjs,Scope,我对AngularJS和编程非常陌生,我相信这是一个基本问题,但我很难找到我们的资源,了解如何从JSON文件($scope.carrierDiff)中减去两个$scope值。如果您能提供任何帮助,我将不胜感激 <!doctype html> <html ng-app="MyApp"> <head> <meta charset="utf-8"> <title>Untitled Document</title> <scri

我对AngularJS和编程非常陌生,我相信这是一个基本问题,但我很难找到我们的资源,了解如何从JSON文件($scope.carrierDiff)中减去两个$scope值。如果您能提供任何帮助,我将不胜感激

<!doctype html>
<html ng-app="MyApp">
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script src="Scripts/angular.min.js"></script>
</head>
<body >
    <div ng-controller="SiteCtrl">
        <ul ng-repeat="site in sites">
            <li>{{site.ID}}</li>
            <li>{{carrierDiff}}</li>
       </ul>
    </div></body>
<script>
    var app = angular.module("MyApp", []);
        app.controller("SiteCtrl", function($scope, $http) {
            $http.get('JSON/getsamplesitesCopy.json').
            success(function(data, status, headers, config) {   
                $scope.sites = data;
            $scope.carrierDiff = $scope.sites.Carrier - $scope.sites.Carrier2;
}).
error(function(data, status, headers, config) {
// log error
});
});
</script>
</html>

无标题文件
  • {{site.ID}
  • {{carrierDiff}}
var-app=angular.module(“MyApp”,[]); app.controller(“SiteCtrl”,函数($scope,$http){ $http.get('JSON/getSampleSiteScope.JSON')。 成功(函数(数据、状态、标题、配置){ $scope.sites=数据; $scope.carrierDiff=$scope.sites.Carrier-$scope.sites.Carrier2; }). 错误(函数(数据、状态、标题、配置){ //日志错误 }); });
由于我对从您正在检索的文件中返回的内容了解有限,您似乎没有正确地引用JSON数据。您需要引用$scope.sites或数据,而不是两者的黑客版本。如果数据结构如下所示:

data = {Carrier: 5, Carrier: 4}
然后,您将参考Carrier,如下所示:

data.Carrier1
因此,当您将数据移动到$scope.sites时,您引用的是数据中的JSON,而无需指出它来自数据

$scope.sites.Carrier1
因此,您的代码应该如下所示:


无标题文件
  • {{site.ID}
  • {{carrierDiff}}
var-app=angular.module(“MyApp”,[]); app.controller(“SiteCtrl”,函数($scope,$http){ $http.get('JSON/getSampleSiteScope.JSON')。 成功(函数(数据、状态、标题、配置){ $scope.sites=数据; $scope.carrierDiff=$scope.sites.Carrier-$scope.sites.Carrier2; }). 错误(函数(数据、状态、标题、配置){ //日志错误 }); });

还有一点要记住,你应该把你的
放在头上或身体里,而不是外面。请参阅上面代码中的修改。

我对从您正在检索的文件中返回的内容了解有限,似乎您引用的JSON数据不正确。您需要引用$scope.sites或数据,而不是两者的黑客版本。如果数据结构如下所示:

data = {Carrier: 5, Carrier: 4}
然后,您将参考Carrier,如下所示:

data.Carrier1
因此,当您将数据移动到$scope.sites时,您引用的是数据中的JSON,而无需指出它来自数据

$scope.sites.Carrier1
因此,您的代码应该如下所示:


无标题文件
  • {{site.ID}
  • {{carrierDiff}}
var-app=angular.module(“MyApp”,[]); app.controller(“SiteCtrl”,函数($scope,$http){ $http.get('JSON/getSampleSiteScope.JSON')。 成功(函数(数据、状态、标题、配置){ $scope.sites=数据; $scope.carrierDiff=$scope.sites.Carrier-$scope.sites.Carrier2; }). 错误(函数(数据、状态、标题、配置){ //日志错误 }); });

还有一点要记住,你应该把你的
放在头上或身体里,而不是外面。请参阅上面代码中的修改。

无需单独计算

$scope.carrierDiff=$scope.sites.Carrier-$scope.sites.Carrier2

你只需要这样做


  • {{site.ID}
  • {{site.Carrier-site.Carrier2}

无需单独计算

$scope.carrierDiff=$scope.sites.Carrier-$scope.sites.Carrier2

你只需要这样做


  • {{site.ID}
  • {{site.Carrier-site.Carrier2}

您写信给$scope.sites,但您正在对$scope.data进行计算。是哪一个?我想这是你的问题。载波是整数还是字符串?请提供GetSampleSiteScope.json的结构,或者创建一个JSFIDLE.net项目,以便我们可以看到您的问题的复制。它应该是$scope.sites@dman2306。我纠正了这一点,但我仍然没有得到{{carrierDiff}的结果,我收到的错误是:TypeError:无法读取未定义的属性“Carrier”。@BrianGerhards Carrier和Carrier2都是整数
无法读取未定义的属性“Carrier”
本质上是说
$scope.sites==undefined
。只有当您没有数据,或者此代码不是实际使用的代码时,才会发生这种情况。您已写入$scope.sites,但正在对$scope.data进行计算。是哪一个?我想这是你的问题。载波是整数还是字符串?请提供GetSampleSiteScope.json的结构,或者创建一个JSFIDLE.net项目,以便我们可以看到您的问题的复制。它应该是$scope.sites@dman2306。我纠正了这一点,但我仍然没有得到{{carrierDiff}的结果,我收到的错误是:TypeError:无法读取未定义的属性“Carrier”。@BrianGerhards Carrier和Carrier2都是整数
无法读取未定义的属性“Carrier”
本质上是说
$scope.sites==undefined
。只有当您没有数据,或者此代码不是实际使用的代码时,才会发生这种情况。谢谢。真不敢相信事情竟那么简单。我确实有一个后续问题,我将很快补充。谢谢。真不敢相信事情竟那么简单。我有一个很快会补充的后续问题。谢谢你的回答。我知道您为Carrier和Carrier2添加了值,但在您的回答中,我是否总是得到两个值的结果?或者,它是否会对承运人和承运人2的价值产生动态影响