2013-02-15 71 views
0

我正在嘗試在Cake php應用程序中使用Html Helper的麪包屑功能來創建麪包屑路徑。我遵循他們說的在手冊上做的方式(一直滾動到底部看它),但是我面臨的問題是,當通過Ajax加載視圖時(通過使用jquery的.load()函數例如),我的麪包屑不顯示。我把這個在我看來:cakephp addCrumb Html Helper

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

這在我的佈局:

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

但不顯示任何內容。當視圖不通過Ajax加載時,一切都很好。有誰可以告訴我爲什麼會發生這種情況嗎?

謝謝

+0

你調用同一個頁面阿賈克斯您正在測試它的頁面? – 2013-02-15 17:36:49

+0

不,這只是我通過Ajax調用的視圖,它在主頁上加載 – user765368 2013-02-15 17:38:06

+0

這些頁面之間的區別是什麼?如果你想回答你的問題,我們需要更多信息。 – 2013-02-15 17:39:31

回答

0

你可以輸出在視圖中再次屑,隱藏,然後​​後把它們添加到您的佈局屑。否則你將無法做到這一點。如果您使用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 
});