我正在尝试有条件地渲染我的 <head>
中的一些标签
代码如下:
<!doctype html>
<html ng-app='nodeApp'>
<head>
if (title)
<title>#{title}</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8">
<meta name='author' content='#{author}'>
<meta name='og:title' content='#{title}'>
<meta name='description' content='#{description}'>
<meta name='og:description' content='#{description}'>
<meta name='og:image' content='#{image}'>
<meta name="theme-color" content="#3F51B5">
<!-- CSS files are inserted here -->
<link rel="stylesheet" href="/static/client.css" type="text/css">
</head>
当我转到我的页面时,文本“if(标题)”会以纯文本形式呈现在页面顶部。所有条件都会发生这种情况。但是,标题标签会使用正确的文本呈现。
我也尝试过
if title
<title>#{title}</title>
和
if (title) {
<title>#{title}</title>
}
在我的后端我有(整个类(class))..
const jade = require('jade');
this.locals = {
title: process.env.sitename
};
this.header = jade.render(this.header, this.locals);
因此,站点名称会正确返回,因为标题已填充,但 if 语句不执行任何操作,只是呈现为纯文本。想法?
最佳答案
我认为问题可能在于你将常规 html 与 jade 混合在一起编写。 由于您使用常规 html 标签编写,因此 if 语句已经是一个子项。但如果你也使用缩进,它就会变成一种双重缩进,而 Jade 就会感到困惑。 尝试在 if 语句之前不缩进:
<head>
if (title)
<title>#{title}</title>
或者更好。始终如一地使用 Jade。
关于javascript - Jade 条件语句呈现为纯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36523385/