1

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 的新 obj,但如果记录 Status 分别为 1 或 2,则仍会填充“Pending”或“Settled”值。

新的所需对象 {"ticker": "Ticker", "tickerId": "TickerID", "Pending": 0 or 1, "Settled": 0 or 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??

控制器.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}
  });
});

应用程序.js

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

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

  otherwise({redirectTo: '/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。不确定我缺少什么。

4

2 回答 2

0

是不是因为你有针对 UL 元素的控制器,而是在关闭 UL 之后调用了 tickerMenu 范围属性?

于 2013-09-09T18:10:30.847 回答
0

答案是创建一个自定义的.filter。

所以:股票行情中的股票 | 我的自定义过滤器

http://docs.angularjs.org/guide/dev_guide.templates.filters

于 2013-09-10T05:04:51.023 回答