我在用小胡子.js在我正在处理的Pyramid/sqlalchemy项目中渲染模板,但它们在浏览器中似乎没有渲染。我使用Chrome的firebug-lite和开发人员控制台进行调试。你知道吗
下面是我尝试使用的代码:
在顶部,在头部
<script type="text/javascript" src="/static/mustache.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
在身体里
$(document).ready(function () {
$(document.body).append('<div id =\"user\">hello here is some stuff <br /></div>');
var person = {
"title" : "Herr Doktor Professor",
"firstname": "Don",
"lastname": "Johnson"
};
console.log(person);
var template = '<h1>Greetings, {{title}} {{firstname}} {{lastname}}</h1>';
console.log(template);
var user = Mustache.render(template, person);
console.log(user);
$('#user').append(user);
$(document.body).append(Mustache.render("{{title}} {{lastname}}", {title: "Doctor", lastname: "Test"}));
});
这是个傻瓜。。HTML呈现给我
<h1>Greetings, </h1>
现在。。。你知道吗
console.log(person);
var template = '<h1>Greetings, {{title}} {{firstname}} {{lastname}}</h1>';
console.log(template);
在控制台中
Object {title: "Herr Doktor Professor", firstname: "Don", lastname: "Johnson"}
<h1>Greetings, </h1>
此外。。。你知道吗
var user = Mustache.render(template, person);
console.log(user);
告诉我这个:
<h1>Greetings, </h1>
最后一行的模板文字似乎什么也没做。你知道吗
所以这就很奇怪了。。在控制台本身中,如果我尝试以下操作:
var template = '<h1>Greetings, {{title}} {{firstname}} {{lastname}}</h1>';
我明白了:
>template
"<h1>Greetings, {{title}} {{firstname}} {{lastname}}</h1>"
太棒了!现在我要做的是:
>var person = {
"title" : "Herr Doktor Professor",
"firstname": "Don",
"lastname": "Johnson"
};
>person
Object {title: "Herr Doktor Professor", firstname: "Don", lastname: "Johnson"}
>var user = Mustache.render(template, person);
>user
"<h1>Greetings, Herr Doktor Professor Don Johnson</h1>"
类似地,最后一行代码中的模板文本似乎工作得很好。你知道吗
为什么这在控制台中运行良好,而在浏览器中却完全不起作用?你知道吗
看起来您的
{{variable}}
标记首先由服务器端模板引擎进行解释。你用哪一种?金贾2号?你知道吗确认-在浏览器中查看页面源代码(Ctrl-U)并检查
{{variable}}
内容是否存在-很可能不存在。你知道吗解决方案是将HTML页面中的内联JavaScript数量减到最少—只需几行配置就可以了,任何超出这些配置的内容都属于一个单独的文件。否则,您将从服务器端模板生成JavaScript,JavaScript将生成一个小胡子模板,该模板反过来生成HTML。。。只是有很多层
相关问题 更多 >
编程相关推荐