如何从laravel4模板中解析html / js代码?

时间:2014-02-19 10:25:48

标签: templates laravel-4

我想将html代码与我的laravel模板(* .blade.php)文件分开。我在dashboard.blade.php模板中有以下代码:

<h1>Dashboard</h1>
<p>Welcome to your Dashboard. You rock!</p>
<div class="bubbletree-wrapper">
    <div class="bubbletree"></div>
</div>

我想从这里分离这个html代码,并希望将其移动到另一个文件,扩展名为* .html或* .tpl或除* .php之外的任何其他文件。

有可能这样做吗?请帮帮我。

感谢。

1 个答案:

答案 0 :(得分:0)

我没有看到任何人100%解耦HTML / CSS,但你可以遵循一些设计模式,比如Presenter,并使用Laravel Blade,因此它很少耦合。

为视图命名home.blade.php并将代码添加到其中并将代码更改为:

<h1>{{$pageTitle}}</h1>
<p>{{$welcomeMessage}}</p>
<div class="bubbletree-wrapper">
    <div class="bubbletree"></div>
</div>

使用以下方式创建路线:

<?php

Route::get('/', function() {

    return View::make('home', 
                        array(
                            '$pageTitle' => 'Dashboard', 
                            'welcomeMessage' => 'Welcome to your Dashboard. You rock!'
                        )
                    );

});

请参阅?它几乎100%解耦,但您不能100%解耦,否则您将无法在最终HTML中显示动态数据。

此外,Blade可以帮助您整理代码,因此您可以设置一个布局,让我们称之为layout.blade.php

<!DOCTYPE html>
<html lang="en-us">
    <head>
        <meta charset="utf-8">
        <title> Your Application </title>
        <link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap.min.css">
    </head>

    <body class="">

        @yield('contentSection')

    </body>

</html>

你只有一行Blade,只是为了添加你的页面内容,现在你可以创建你的家庭视图:

@extends('layout')

@section('contentSection')
    <h1>{{$pageTitle}}</h1>
    <p>{{$welcomeMessage}}</p>
    <div class="bubbletree-wrapper">
        <div class="bubbletree"></div>
    </div>
@stop

Blade会为您呈现此HTML:

<!DOCTYPE html>
<html lang="en-us">
    <head>
        <meta charset="utf-8">
        <title> Your Application </title>
        <link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap.min.css">
    </head>

    <body class="">

        <h1>Dashboard</h1>
        <p>Welcome to your Dashboard. You rock!</p>
        <div class="bubbletree-wrapper">
            <div class="bubbletree"></div>
        </div>

    </body>

</html>