如何在Angular中动态查询JSON对象?

时间:2017-11-20 03:22:54

标签: javascript angularjs json

在我的Angular(v.1.6.3)应用程序中,我抓住了一个充满股票价格信息的JSON对象。正如您在下面的示例中所看到的,由于其结构,只能使用括号查询(每个键都是包含空格,括号,句点等的字符串):

{ "Time Series (Daily)":
    "2017-11-17":
      "4. close": "82.4000"
    "2017-11-18":
      "4. close": "79.2000"
}

在我的控制器中,我已将此JSON对象存储为变量($scope.stocks),并创建了我认为可以动态更改HTML中显示的数据的方法:

$scope.thisStock = $scope.stocks["Time Series (Daily)"][$scope.currentDate]["4. close"];

$scope.currentDate根据HTML的表单输入动态更改(即,用户可以滑动窗口小部件以选择显示此股票收盘价的当前日期)。

这里是HTML,它应该动态显示用户选择的任何日期的收盘价格:

{{thisStock | currency}}

我已经测试了$scope.currentDate(它给了我一个格式正确的日期字符串),我已经测试了静态查询$scope.stocks(它有效),但是如何动态地进行HTML显示?当我尝试使用当前设置时,它没有使用$scope.currentDate作为变量 - 它将其视为字符串,从而告诉我我的查询无效。

我觉得我可能会以某种方式从错误的角度接近这个。救命啊!

1 个答案:

答案 0 :(得分:1)

您需要关注currentDate

中的更改

试试这个

$scope.$watch('currentDate', function() {
  $scope.thisStock = $scope.stocks["Time Series (Daily)"][$scope.currentDate]["4. close"];
});