Я работаю над этим шагом 12 углового метеорта, и у меня есть вопрос в
Остановка подписки Тема
вы можете использовать ctrl + f, используя "meteorSubscribe"
то ключевое предложение по этой теме
Причина в том, что мы вызываем другую подписку на одну и ту же коллекцию внутри контроллера 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, но он просто вызывает неправильный результат, как говорится в учебнике
если вы перейдете на страницу сведений о партии, а затем вернитесь, разбивка на страницы и поиск перестанут работать.
Тогда у меня есть два вопроса
EDIT: Если вы не отмените подписку, тогда, если вы перейдете и снова вернетесь, вы в конечном итоге попытаетесь дважды подписаться на ту же публикацию, что приведет к ошибке, потому что подписки в meteor продолжаются до тех пор, пока вы их не закончите.
Существует два способа избавиться от подписки с угловым метеоритом. Вы можете назначить переменную дескриптора подписке, а затем перейти от страницы, которую вы можете остановить. Два (рекомендуемый способ) - использовать $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.