我正在使用快速服务器和角度客户端。我用jade写快递模板,代码很干净。
例如,在index.jade
中html
head
title!= title
body
h1!= message
然后我可以将jade文件编译成html文件
app.get('/', function (req, res) {
res.render('index', { title: 'Hey', message: 'Hello there!'});
});
现在我正在向客户端移动一些逻辑以防止页面加载。缺点是角度模板与普通的html代码一样冗长。文件很快变得混乱。
例如,在我的个人资料模板中,我有这个
<div class="my-panel-body">
<table class="my-table">
<!--email-->
<tr>
<th>Email</th>
<td>{{entity.email}}</td>
</tr>
<!--gender-->
<tr>
<th>Gender</th>
<td>{{entity.meta.gender}}</td>
</tr>
<!--dob-->
<tr>
<th>Date of Birth</th>
<td>{{entity.meta.dob}}</td>
</tr>
<!--country-->
<tr>
<th>Country</th>
<td>{{entity.meta.country}}</td>
</tr>
<!--city-->
<tr>
<th>City</th>
<td>{{entity.meta.city}}</td>
</tr>
<!--status-->
<tr>
<th>Status</th>
<td>{{entity.meta.status}}</td>
</tr>
如果我能写出像
这样的东西,那就太好了div
table
head
tr
th Date of Birth
td {{entity.dob}}
tr
th Email
td {{entity.email}}
它不一定是玉。只要它干净简洁,我就可以使用任何语言
答案 0 :(得分:1)
Jade在服务器上运行,Angular在客户端上运行。当Angular请求模板时,它会询问服务器,服务器将处理Jade模板并使用生成的HTML进行响应,然后是有效的Angular模板。
只要您没有使用任何类型的预处理器将Angular模板打包到单个文件中,那么在服务器上使用Jade为客户端生成Angular模板就可以正常工作。如果您使用的是预处理器,那么您需要先运行Jade(这也是可能的 - Jade不依赖于Express。)
不一定与此问题相关,但注意Angular与HTML无关也很有用。浏览器支持的任何基于标签的语言都适用于Angular - SVG,VRML,MathML等。
答案 1 :(得分:0)
所以你能做的就是按照你想要的方式编写它们,然后在角度加载之前创建一个名为使用$templateCache
的模板的模块。您可以在解析后将它们放在那里:https://docs.angularjs.org/api/ng/service/$templateCache
如果您需要动态渲染,则必须修改$http.get
中.config
的工作方式,并检查它是否为模板以及是否通过渲染器传递。< / p>