0

Cake php アプリケーションでHtml Helperのブレッドクラム機能を使用して、ブレッドクラム トレイルを作成しようとしています。私は彼らがマニュアルでそれを行うように言った方法に従いました(それを見るために一番下までスクロールします)が、私が直面している問題は、ビューがAjax経由で(jqueryの.load()関数を使用して)ロードされるときです例)、パンくずリストが表示されません。私はこれを私の見解に入れました:

<?php echo $this->Html->addCrumb('Users', '/users'); ?>

そして、これは私のレイアウトで:

<?php echo $this->Html->getCrumbs(' >> ', 'Home'); ?>

しかし、何も表示されません。ビューが Ajax 経由で読み込まれない場合、すべて問題ありません。なぜこれが起こっているのか誰か教えてもらえますか?

ありがとうございました

4

1 に答える 1

0

クラムをビューに再度出力して非表示に.load()し、レイアウトのクラムに追加した後、クラムを出力することができます。そうしないとできません。「レイアウト」クラムは既にレンダリングされており、load()コンテンツの挿入に使用している場合は再度レンダリングされません。

私がそれを行う方法のアイデアを提供するためのいくつかのサンプルコード:

// layout
echo '<div class="crumbs">' . $this->Html->getCrumbs() . '</div>';
echo '<div class="content"><!-- AJAX content goes here--></div>';

// view
$this->Html->addCrumb('My Page');
echo '<div class="hiddenCrumbTrail">' . $this->Html->getCrumbs() . '</div>';
echo 'Here is my page content';

// js
$(function() { 
    $('.content').load('/controller/action'); // load content
    $('.crumbs').empty(); // remove existing
    $('.crumbs').append($('.hiddenCrumbTrail')); // append with updated
});
于 2013-02-16T09:23:10.613 に答える