我想通过 AJAX @yield 或 @include 一个 laravel 刀片模板与另一个模板,这怎么可能?
Posted
技术标签:
【中文标题】我想通过 AJAX @yield 或 @include 一个 laravel 刀片模板与另一个模板,这怎么可能?【英文标题】:I want to @yield or @include one laravel blade template with another by AJAX, how is it possible? 【发布时间】:2017-01-12 22:43:35 【问题描述】:是否可以通过 AJAX 将一个刀片视图文件@yield 或 @include 与另一个刀片一起使用?
【问题讨论】:
考虑使用 Vue.js 或其他前端框架或只是 vanilla JS 将 html 加载到浏览器中后的页面中。 Blade是服务器端,JS是客户端。 【参考方案1】:您可以做的是,对控制器进行 ajax 调用,然后从那里返回渲染的视图。
JS:
$.ajax(
method: "GET",
url: "route-to-ajax-call",
dataType: 'json',
data:
param1:param1,
param2:param2
,
success: function (res)
$('#div').html(res.data);
,
error: function()
alert('Failed');
);
控制器:
public function returnAjax(Request $request);
$parameter1 = $request->param1;
$view = View::make('route-to-your-view', ['parameter1' => $parameter1]);
return response()->json(['status' => 'success', 'data' => $view]);
【讨论】:
【参考方案2】:您可以使用 AJAX 将 HTML 加载到您的页面中,但这与 Blade 没有太大关系,因为 Blade 在服务器端呈现。
使用 jQuery 的.load()
:
<script>
$('#targetDiv').load( url('/route/that/returns/the/html') )
</script>
【讨论】:
以上是关于我想通过 AJAX @yield 或 @include 一个 laravel 刀片模板与另一个模板,这怎么可能?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我无法通过 Ajax 获取 WP 自定义字段值或发布 ID?