ng-repeat不使用合并的数组对象

时间:2016-04-03 19:22:18

标签: javascript angularjs

我基于ydn-db package

var db = new ydn.db.Storage('Trans');

    var iter_supplier = new ydn.db.IndexValueIterator('stops', 'stop_id');
    var iter_part = new ydn.db.IndexValueIterator('times', 'stop_id');
    var req = db.scan(function(keys, values) {
        var SID = keys[0];
        var PID = keys[1];
        // console.log(SID, PID);
        if (!SID || !PID) {
            return []; // done
        }
        var cmp = ydn.db.cmp(SID, PID); // compare keys
        if (cmp == 0) {
            // console.log(values[0], values[1]);
            var merged = angular.extend(values[0], values[1]);
            console.log(merged);

            $scope.results = merged;
            // $scope.$apply(function() {
            //     $scope.results = merged;
            // });

            return [true, true]; // advance both
        } else if (cmp == 1) {
            return [undefined, SID]; // jump PID cursor to match SID
        } else {
            return [PID, undefined]; // jump SID cursor to match PID
        }
    }, [iter_supplier, iter_part]);

浏览器结果中的控制台如下所示: enter image description here

我正在尝试使用ng-repeat进行循环:

    <div class="medium-6 columns" ng-repeat="result in results">
        <div class="card hoverable">
            <div class="content">
                <span class="title">{{ result }}</span><small class="float-right">{{result.stop_id}}</small>
                <div class="divider"></div>
                <p>Times: {{ result.arrival_time }}</p>
            </div>
        </div>
    </div>  

我在ng-repeat中没有得到任何内容。它似乎没有循环。我做错了什么?

1 个答案:

答案 0 :(得分:0)

merged似乎是单个对象,目前在每次迭代时打印出来。您是要将results设置为该单个对象,还是要寻找类似$scope.results.push(merged)的内容来构建结果列表?

看起来你想要一个列表而不是一个单独的对象,但是如果你不想,而results将成为一个单一的对象/字典,那么你将遍历键和使用ng-repeat="(key, value) in results"的值。