6

{{#each}} の周りにコンテナーを挿入しようとしまし<div>たが、うまくいきませんでした。2 つの通常の投稿リスト ページでは機能するが、それらを距離で並べ替える 3 番目のページでは機能しないため、これも奇妙です。

更新:template.name.onRenderedテンプレート JS を からに変更した後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)

19 行目で参照される meteoric_ionic js ファイル

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}}
4

2 に答える 2

4

これを試して、私に知らせてください:

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') );
    }
  });
});

これがうまくいくかどうか説明します

于 2016-02-11T00:34:19.480 に答える
2

リリース 9 から 11 に cdk を更新して修正しました。

私の場合: mat-card(cdkDrag) を mat-grid-list(cdkDropListGroup)/mat-grid-tile に埋め込む

「'Node' で 'insertBefore' を実行できませんでした: 新しいノードが挿入される前のノードは、このノードの子ではありません。」

于 2021-01-26T16:17:14.047 に答える