我喜歡加載使用jQuery這樣的頁面片段:如何在Laravel 4中使用jQuery加載頁面片段?
$(".title" + nid).click(function() {
$('.loadNest').load("{{ View::make('postDetails') }}");
});
這可能嗎?我的頁面左側有一個帖子標題列表。當用戶點擊帖子標題時,我想在右側加載頁面片段以及帖子的所有細節。作者,評論等等都在同一頁面上。
我喜歡加載使用jQuery這樣的頁面片段:如何在Laravel 4中使用jQuery加載頁面片段?
$(".title" + nid).click(function() {
$('.loadNest').load("{{ View::make('postDetails') }}");
});
這可能嗎?我的頁面左側有一個帖子標題列表。當用戶點擊帖子標題時,我想在右側加載頁面片段以及帖子的所有細節。作者,評論等等都在同一頁面上。
jQuery的load
方法實際上是一個AJAX調用,因此您必須設置一個可輸出視圖的路徑。事情是這樣的:
Route::get('ajax/postDetails', array(
'as' => 'postDetailsView', // This is the name of your route
'do' => function() {
return View::make('postDetails');
}
));
然後,在你的代碼,你必須:
$(".nestTitle").click(function(e){
$.ajax({
url: "getNest",
context: document.body
}).done(function(fragment) {
$(".loadNest").html(fragment);
});
});
哪個叫我的路線:
$('.title' + nid).click(function() { // Use the route's name you setup
$('.loadNest').load('{{ URL::route('postDetailsView') }}');
});
我使用這個jQuery代碼解決了這個問題像這樣:
Route::get('getNest', array('as' => 'getNest', 'uses' => '[email protected]'));
The n在我的控制器中,我做到了這一點:
$nid = 105;
$uid = Auth::user()->id;
$nests = Nest::with('user')
->where('user_id', '=', $uid)
->where("id", $nid)
->get();
return View::make('nestItems', compact('nests'));
我只需要傳遞參數,我應該很好。謝謝你的幫助Raphael。
,我用一個乾淨的解決方案是使用資產在你的JavaScript
$(".title" + nid).click(function() {
$('.loadNest').load("{{ asset('postDetails') }}");
});
和設置的路由作爲
Route::get('/postDetails', function() {
return View::make('postDetails');
});
沒有能夠得到它的工作。你能夠在你的最終測試成功嗎? – Danaia
我以前沒有見過在這方面使用過的'do'。有沒有特別的理由在這裏使用它? – Danaia
'do'是'Closures'用於控制器的方法。 – rmobis