我正在研究angular-meteor tutorial step 12 我有一个问题
停止订阅主题
你可以使用“meteorSubscribe”
来使用ctrl + f然后关于该主题的关键句是
原因是我们在partyDetails控制器内的同一个集合上调用了不同的订阅。
修正前的代码是
$scope.party = $meteor.object(Parties, $stateParams.partyId).subscribe('parties');
$scope.users = $meteor.collection(Meteor.users, false).subscribe('users');
然后纠正
$scope.party = $meteor.object(Parties, $stateParams.partyId);
$scope.users = $meteor.collection(Meteor.users, false).subscribe('users');
$scope.$meteorSubscribe('parties');
我尝试在更正代码之前运行并且在cmd中没有显示任何内容(错误),但它只会导致错误的结果,如教程所说
如果您导航到聚会详细信息页面然后返回,则分页和搜索将停止工作。
然后我有两个问题
答案 0 :(得分:2)
有两种方法可以摆脱角度流星的订阅。您可以为订阅分配一个句柄变量,然后在离开页面时可以停止它。两个(建议的方式)是使用$scope.$meteorSubscribe
而不是$meteor.subscribe()
,因为它被设置为在范围被销毁时自动删除订阅。
我无法看到你的所有代码都知道你为什么或者没有得到你认为你应该犯的错误,希望这能够解释教程中发生的事情。
最终的结果将是:
$meteor.autorun($scope, function() {
$meteor.subscribe('parties', {
limit: parseInt($scope.perPage),
skip: parseInt(($scope.page - 1) * $scope.perPage),
sort: $scope.sort
}).then(function() {
$scope.partiesCount = $meteor.object(Counts, 'numberOfParties', false);
$scope.parties = $meteor.collcetion(function() {
return Parties.find({}, {
sort: $scope.getReactively('sort');
});
});
});
});
请注意,他也在更改服务器上的发布功能。有助于理解您是否单击链接以显示git差异。