2016-08-19 8 views
0

この例は次のとおりですhttps://kadira.io/academy/meteor-routing-guide/content/rendering-blaze-templates 私のリンクをクリックすると、ページ全体がリロードされています。必要なテンプレート部分だけを読み込む方法はありますか?ページ全体ではありませんか?ページリロードのないFlowRouter

編集:また別の問題を指摘しました。 {{> Template.dynamic}}の外にあるものはすべて2回レンダリングされます。

私のプロジェクトのサンプルです。 https://github.com/hayk94/UbMvp/tree/routing

EDIT:内容をmainLayoutテンプレートに置き、そこからレンダリングを開始すると、2重レンダリングの問題が修正されました。しかし、リロードの問題は、しかし、すぐに私はそれを添付して問題が解決しない、なぜならこのコードルーティングは任意のリロードなしで動作し、テンプレートに添付、このイベントがなければ

Template.mainLayout.events({ 
    "click *": function(event, template){ 
    event.stopPropagation(); 
    console.log('body all click log'); 
    // console.log(c0nnIp); 
    var clickedOne = $(event.target).html().toString(); 
    console.log('This click ' + clickedOne); 
    //getting the connID 

    var clientIp = null // headers.getClientIP(); // no need for this anymore 
    var clientConnId = Meteor.connection._lastSessionId; 
    console.log(clientIp); 
    console.log(clientConnId); 



    Meteor.call("updateDB", {clientIp,clientConnId,clickedOne}, function(error, result){ 
     if(error){ 
     console.log("error", error); 
     } 
     if(result){ 

     } 
    }); 

    }, // click * 
});//events 

で起こります。 このコードがこのような問題を引き起こす理由がありますか?

答えて

1

EDIT 2、次の質問を改訂3:

event.stopPropagation()イベント"click *"のは、おそらくリンクをクリックを傍受からルータを防ぐことができます。

ブラウザがデフォルトの動作、つまりそのリンクに移動し、ページ全体を再読み込みします。


EDIT、次の質問を改訂2:

わからないあなたは、直接あなたのbody BlazeLayoutとしてターゲットレイアウトを使用することができます。

BlazeLayout Usageの最初のコードサンプルでは、​​実際のテンプレートをレイアウト(<template name="layout1">)として使用し、BlazeLayout.render('layout1', {});としてJSをターゲットにしています。

チュートリアルでは、同様に<template name="mainLayout">を使用します。

レイアウトテンプレートがページの本文に追加され、それに応じて埋められます。また、そのレイアウトのプレースホルダをBlazeLayout.setRoot()で変更することもできます。

bodyを直接ターゲティングすると奇妙なことが起こる可能性がありますか?特に、コンテンツが2回レンダリングされた理由を説明します。


オリジナルの答え:

ページが実際に再ロードされている場合は、あなたのリンクが傍受されないよう、あなたのルータが、正しく設定されていない可能性があり、ご使用のブラウザは、あなたが実際にそのページに移動します。その場合、さらに助けが必要な場合は実際のコードを確認する必要があります。

あなたのページが実際にリロードされず、コンテンツ全体だけが変更されますが(その一部を変更したい場合)、動的テンプレートを正しくポイントするようにしてください。

あなたは、あなたのレイアウトの異なる動的テンプレート目標を設定する方法を確認するために、どのようにあなたが(同時に、またはそれらのいくつかの)それらを別々に変更することができますkadira:blaze-layoutパッケージドキュメントを参照することができます。

kadira:react-layoutパッケージを使用する場合は、似たようなものがあります。

+0

はい、私はまだこれについて助けが必要です。私の元の投稿の編集を見てください。 –

+0

さらなる詳細をありがとうございます。レポにリンクするだけでなく、質問に直接コードを貼り付けることが非常に望ましいことにご注意ください。 http://stackoverflow.com/help/mcveも参照してください。私は上記の答えにいくつかの詳細を追加しました。 – ghybs

+0

ありがとう、私はちょうど私のコードのデバッグを開始するのか分からなかったが、問題のあるコードを特定することができたので、質問を更新します。 –

関連する問題