Ошибка: не удалось выполнить "insertBefore" на "узле"
Я пытался вставить <div>
контейнеры вокруг {{#each}}, но это не сработало. Это также странно, потому что это работает для 2 обычных страниц списка сообщений, но не для 3-го, который сортирует их по расстоянию.
Обновления: я заметил, что после изменения шаблона JS из template.name.onRendered
в onCreated
, страница сортировки работает. Однако это работает, только если вы переходите с предыдущей страницы списка сообщений, а не со страницы профиля.
Единственное общее основание страниц ошибок - те страницы, которые используют publishComposite для сортировки. Может ли это быть проблемой, поскольку publishComposite имеет дочерние и родительские отношения?
Сообщение об ошибке
Exception in queued task: Error: Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.
at Error (native)
at Object.container._uihooks.insertElement (http://localhost:3000/packages/meteoric_ionic.js?e45c114e85716d9fad8bac1cd7904ae2700bc963:5750:19)
at DOMRange._insertNodeWithHooks (http://localhost:3000/packages/blaze.js?695c7798b7f4eebed3f8ce0cbb17c21748ff8ba8:383:21)
at Function.Blaze._DOMRange._insertNodeWithHooks (http://localhost:3000/packages/peerlibrary_blaze-components.js?4eddb4e3f0f660190548347e680d109a51a7050f:2377:10)
at Function.DOMRange._insert (http://localhost:3000/packages/blaze.js?695c7798b7f4eebed3f8ce0cbb17c21748ff8ba8:354:16)
at DOMRange.attach (http://localhost:3000/packages/blaze.js?695c7798b7f4eebed3f8ce0cbb17c21748ff8ba8:431:16)
at Blaze._DOMRange.attach (http://localhost:3000/packages/peerlibrary_blaze-components.js?4eddb4e3f0f660190548347e680d109a51a7050f:2437:33)
at Function.DOMRange._insert (http://localhost:3000/packages/blaze.js?695c7798b7f4eebed3f8ce0cbb17c21748ff8ba8:349:7)
at DOMRange.attach (http://localhost:3000/packages/blaze.js?695c7798b7f4eebed3f8ce0cbb17c21748ff8ba8:431:16)
at Blaze._DOMRange.attach (http://localhost:3000/packages/peerlibrary_blaze-components.js?4eddb4e3f0f660190548347e680d109a51a7050f:2437:33)
Файл meteoric_ionic js относится к строке 19
container._uihooks = {
insertElement: function(node, next) {
var $node = $(node);
if (!template.transition || !$node.hasClass('view') || IonNavigation.skipTransitions) {
container.insertBefore(node, next); //line 19
return;
}
Соответствующий HTML
{{#ionView}}
{{#ionContent}}
{{#ionList}}
<div>
{{#each shops}}
{{> shopItem}}
{{/each}}
</div>
{{/ionList}}
{{/ionContent}}
{{/ionView}}
2 ответа
Попробуйте это и дайте мне знать:
Template.nearShops.onCreated(function () {
var self = this;
self.autorun(function () {
self.interval = Meteor.setInterval(function(){
var currentLocation = Geolocation.latLng() || '';
if(currentLocation) {
Session.set('lat', currentLocation.lat);
Session.set('lng', currentLocation.lng);
}
}, 2000);
});
self.autorun(function(){
if(Session.get('lat')) {
self.subscribe( "nearShops", Session.get('lng'), Session.get('lat') );
}
});
});
Я сделаю объяснение, если эта работа
Я исправил это, обновив cdk с версии 9 до 11.
Мой случай: встраивание мат-карты (cdkDrag) в список мат-сетки (cdkDropListGroup)/мат-сетка-плитка
Напомнить «Не удалось выполнить «insertBefore» на «узле»: узел, перед которым должен быть вставлен новый узел, не является дочерним по отношению к этому узлу».