Tra*_*er1 28 node.js razor express
我一直在玩NodeJS,ExpressJS等,并且真的希望能够让模板引擎更接近ASP.Net MVC的节点(jshtml)的Razor引擎.我很好奇是否有人熟悉这样的野兽,或者更接近它的东西.
我想要的主要功能是基于区域/部分的主/父布局/模板插入,这似乎不是我到目前为止看到的节点的模板引擎中的一个功能.
- 编辑:2012-02-09 -
我基本上想要能够做到以下几点......
_layout.jshtml
<!DOCTYPE html>
<html>
<head>
<!-- meta tags, etc -->
<!-- title set in page -->
<title>@ViewBag.Title</title>
<!-- site-wide styles -->
@RenderSection("Styles", false)
</head>
<body class="@ViewBag.PageClass">
<!-- site-wide header -->
<div id="side_content">
@RenderSection("Side", false)
</div>
<div id="main_content">
@RenderBody()
</div>
<!-- site-wide footer -->
<!-- site-wide scripts -->
@RenderSection("Scripts", false)
</body>
</html>Run Code Online (Sandbox Code Playgroud)
mypage.jshtml
@{
ViewBag.Title = "My Page";
ViewBag.PageClass = "page-x";
}
@section Styles {
<link ... />
}
@section Scripts {
<script type="text/javascript">
var pagesettings = @Html.Raw(Model.SomeJsonContentFromController);
</script>
}
@section Side {
side content here
}
main content hereRun Code Online (Sandbox Code Playgroud)
这是从视图到包括多个部分的布局的某些标准.我还没有看到如何在Jade或EJS中做到这一点的例子,如果有可能我会欣赏这种见解.
- 编辑:2012-02-13 -
它看起来像ExpressJS 3 + Jade现在有"扩展"和"阻止"关键字,用于准确定义我正在寻找的东西.从这里取的例子.感谢@Don的回答和评论.
// my-template.jade
extends my-layout
// only guessing this var will be passed to the layout (testing later)
- var pageTitle = "My Template";
- var pageClass = "my-template";
block styles
style(type="text/css")
block scripts
script(src="myscript.js")
block side
div Side Content Here
block main
div Main Content Here
Run Code Online (Sandbox Code Playgroud)
//my-layout.jade
doctype 5
html
head
title #{pageTitle} - My Site
body(class=pageClass)
#side
block side
#main
block main
block scripts
Run Code Online (Sandbox Code Playgroud)
我不是100%肯定上面的某些方面(即从模板进行布局的变量......将在稍后尝试确认.
| 归档时间: |
|
| 查看次数: |
18742 次 |
| 最近记录: |