我正在使用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。