Laravel 拖拽式建站中如何给字符串模板中传入数据并在视图中展示
问题:在我们网站开发中,会遇到这样的问题,我们渲染模板、生成静态页过程或者拖拽式建站中,如何给字符串模板中传入数据并在视图中展示问题?
下面我测试了2中方法,一种是通过JS插入数据,另外一种是在后台程序中就把数据和模板处理好,统一给view渲染。
目前用的后台框架是laravel,其实只要了解了思路,什么语言,什么框架都一样处理。
1、后台程序处理
Controller:
public function index(Request $request){
$data = ["你好!","早晨","很高兴和你","相遇!"];
$html = '<ul class="ulSection">temple</ul>';
$li = "";
foreach ($data as $v){
$li .= '<li>'.$v.'</li>';
}
$newHtml = str_replace("temple",$li,$html,$i);
return view("index",compact("newHtml"));
}
View:
<div>{!! $newHtml !!} </div>
结果:
网页源代码中:
2、JS处理
Controller
public function index(Request $request){
$data = [1,2,3,4];
$json_data = json_encode($data);
$html = '<ul class="ulSection"></ul>';
return view("index",compact("json_data","html"));
}
View
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>全球搜C端</title>
<script src="http://www.alingfeng.cn/js/jquery.min.js"></script>
</head>
<body>
<div>欢迎访问-全球搜C端-首页</div>
<div>{!! $html !!} </div>
</body>
JS
<script>
const data = {{ $json_data }};
console.log(data);
var ulSection = $(".ulSection");
var html = '';
for (var i= 0; i < data.length ; i++){
html += '<li>'+data[i]+'</li>';
}
ulSection.html(html);
</script>
结果:
网页源代码中:
总结:
由此可以看出,两种方法都能页面效果上达到效果。数据都成功放到html结构中。
但是,做网站开发的都知道。我们开发网站不一定全是用来做SEM的,我们很多网站都会用来做SEO,特别是官网和移动端网站,所以我们要考虑到我们的网站是能够被搜索引擎爬取收录的。
所以,我们最好用后台模板渲染,然后再把html输出到我们的页面中。
还没有评论,快来发表第一个评论吧