javascript - 在 Angular 项目中迭代 JSON 响应以创建我可以在应用程序中使用的新 $scope 对象

标签 javascript json angularjs

JSON:

[{
    "SHFUserID": "400",
    "Status": "2",
    "Ticker": "DPAX",
    "TickerID": "4512",
    "TotalBought": "6300.000000",
    "TotalSold": "4200.000000",
    "TotalSharesNow": "23500.000000"
},
{
    "SHFUserID": "400",
    "Status": null,
    "Ticker": "DPAX",
    "TickerID": "4512",
    "TotalBought": "70500.000000",
    "TotalSold": "47000.000000",
    "TotalSharesNow": "45000.000000"
},
{
    "SHFUserID": "400",
    "Status": null,
    "Ticker": "ONP",        
    "TickerID": "10190",
    "TotalBought": "1175.000000",
    "TotalSold": "1645.000000",
    "TotalSharesNow": "-470.000000"
}]

我正在尝试迭代 Json 以创建一个新对象,该对象仅包含唯一的 TickerID,但如果记录状态分别为 1 或 2,则仍然填充“待处理”或“已解决”值。

新的所需对象{"ticker": "Ticker", "tickerId": "TickerID", "Pending": 0 或 1, "Settled": 0 或 1}

基于示例数据的预期结果:{"ticker": "DPAX", "tickerId": 4512, "Pending":0, "Settled": 1},{"ticker": "ONP", "tickerId":10190,“待处理”:0,“已解决”:0}

JavaScript 代码位于 Angular 项目的controller.js 文件中。无论我使用什么代码来迭代现有的 JSON,我都会返回一个空数组。我尝试过 for 循环、for in 循环,当我在现有 JSON 上运行简单的ticker.length 函数时,它返回 0?

Controller .js:

function TickerListCtrl($scope, Ticker) {

var ticker = [];

ticker = Ticker.query();

$scope.tickers = ticker;

$scope.tickerMenu = ticker.length;  

...
}

资源.js

angular.module('tickerServices', ['ngResource']).
  factory('Ticker', function($resource){
    return $resource('http:........../Rest/tickers.php', {}, {
      query: {method:'GET', params:{UserID:400}, isArray:true}
  });
});

app.js

 angular.module('tickercat', ['tickercatFilters', 'tickerServices']).
 config(['$routeProvider', function($routeProvider) {
 $routeProvider.

  when('/tickers', {templateUrl: 'partials/tickers-list.html',   controller: TickerListCtrl}).

  otherwise({redirectTo: '/tickers'});
}]);

tickers-list.html:

...
    <div class="span3">
  <!--Sidebar content-->

  ...

  <ul class="tickerList">
    <li ng-repeat="ticker in tickers | filter:query | orderBy:orderProp">
      <a href="#/ticker/{{ticker.TickerID}}">{{ticker.Ticker}}</a>
      <p>{{ticker.Status}}</p>
    </li>
  </ul>
{{tickerMenu}}
</div>

浏览器按预期输出“tickerList”,但 {{tickerMenu}} 返回 0。不确定我错过了什么。

最佳答案

这不是因为你有针对 UL 元素的 Controller ,但在关闭 UL 之后调用了tickerMenu 作用域属性吗?

关于javascript - 在 Angular 项目中迭代 JSON 响应以创建我可以在应用程序中使用的新 $scope 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18703752/

相关文章:

javascript - HTML Audio 元素可以播放错误的音频格式

json - Angular 8和导入Json

arrays - 在字典的数组中加载带有字典的 JSON 文件

angularJS + UI bootstrap typeahead : filter:$viewValue doesn't work

javascript - 延迟加载或预加载 Angular 模块并使用服务 worker 来缓存结果?

javascript - 为什么在 Ajax 中从 Label 读取值不起作用

java - 在 Lotus Notes 中自动发送邮件

json - 根据给定的 OpenApi/Swagger 规范验证请求有效负载和响应

javascript - 从 api 调用中检索 ng-options 的值

javascript - 自定义 Angular Directive(指令)中的 ng-switch 打破了双向绑定(bind)