3
當請求是ajax時,我正在渲染內容部分並將其插入到DOM中。它按預期工作。在ajax請求上渲染多個刀片視圖部分
但是..我找不到方法,如何在同一時間渲染多個部分,如content
和title
等。
控制器:
public function awesome(Request $request) {
if($request->ajax()){
return view('awesome')->renderSections()['content'];
}
return view('awesome');
}
Ajax和pushState的
var load = function (url) {
$.get(url).done(function (data) {
$("#content").html(data);
})
};
$(document).on('click', 'a[data-request="push"]', function (e) {
e.preventDefault();
var $this = $(this),
url = $this.attr("href"),
title = $this.attr('title');
history.pushState({
url: url,
title: title
}, title, url);
// document.title = title;
load(url);
});
layouts.app
<title>@yield('title')</title>
<meta name="description" content="@yield('desc')"/>
<a data-request="push" title="AWESOME" href="<?= url('/'); ?>/awesome">Awesome</a>
<a data-request="push" title="RANDOM" href="<?= url('/'); ?>/random">Random</a>
<div id="content">
@yield('content')
</div>
刀片:
@extends('layouts.app')
@section('title', 'Awesome')
@section('desc', 'About awesome')
@section('content')
some text from awesome page
@endsection
問:
如何呈現在同一時間兩個或更多的人?我應該使用數組還是其他?請舉例或完整的解釋。
感謝您的任何答案。
我已經做了同樣的,但而不是返回響應,我編碼視圖,然後在Ajax請求,我正在使用''data = $ .parseJSON(data)''。但我認爲那是一樣的。也許response()會更「'拉拉維爾」的東西。你怎麼想? – Tauras
$ .parseJson只有在返回一個json字符串時纔會有效。這是通過響應json方法完成的。其次,響應json還將內容類型設置爲「application/json」。最後,確保從控制器而不是字符串返回響應或視圖。這是技術上正確的方法:) – Paras
好的,謝謝。最後兩天,我爲了這個,Ban了my頭。 – Tauras