Meteor + Angular中的收集计数不正确

时间:2016-09-22 06:26:45

标签: angularjs meteor collections count subscribe

我正在使用Meteor + AngularJS2。我的一个收藏品的数量经常变化,令人困惑。

关键代码片段:

1.route.js

angular.module('app')
    .config(function ($stateProvider, $urlRouterProvider) {
        $urlRouterProvider.otherwise('login');
        $stateProvider
            .state('dnm', {
                url: '/dnm',
                abstract: true,
                templateUrl: 'client/templates/devmch.html',
                resolve: {
                    devMchs: function() {
                        subs.subscribe('Devices');
                        subs.subscribe('Machines');
                    }
                }
            })
            .state('dnm.devs', {
                url: '/devs',
                templateUrl: 'client/templates/devices.html',
                controller: 'DevicesCtrl'
            }
        }
        ...

2.devices.controller.js

import { Devices } from '../../../lib/collections';

angular.module('devices')
    .controller('DevicesCtrl', ['$scope', function ($scope) {
        $scope.helpers ({
            count: function () {
                return Devices.find().count();
            },
            devices: function (){
                return Devices.find();
            }
        });
    }]);

3.devices.html

<ion-view>
    <ion-content>
        Total Devices(Method 1): {{ count }}<br />
        Total Devices(Method 2): {{ devices.count() }}
        <ion-list>
            <ion-item ng-repeat="device in devices">
                {{ device.name }}
            </ion-item>
        </ion-list>
    </ion-content>
</ion-view>

如您所见,“Devices”使用resolve函数通过其父状态“dnm”进行订阅。运行后,设备html页面中列出了正确的设备(这里我有4个设备)。但设备数量,无论使用方法1还是2,它通常是不正确的值(1或2或3)。

如果我刷新页面,我可以获得正确的计数值。但第一次ng。

0 个答案:

没有答案