这应该简单或简单, 但我不知道为什么它不起作用。我在这里浪费了大约一整天。
https://jsfiddle.net/panyongfeng/m73vnz9j/
<script>
var tpl = "hello: <%= name %>";
var compiled = _.template(tpl);
compiled({
name: "dadf"
});
alert(compiled());
</script>
我得到“你好结果”,这应该是你好爸爸。 你能指出什么是错的吗? 感谢
答案 0 :(得分:1)
您误解了文档中的示例。当他们这样说时:
var compiled = _.template("hello: <%= name %>");
compiled({name: 'moe'});
=> "hello: moe"
上下文是他们在REPL中工作,好像他们从命令行运行node
。这意味着=>
之后的内容是最后一个表达式的结果,hello: moe
字符串是compiled({name: 'moe'})
返回的结果。运行模板函数会将填充的模板作为字符串返回,它不会将结果存储在任何位置。
你想放弃最后一次alert
电话支持:
alert(compiled({ name: "dadf" }));
答案 1 :(得分:0)
您的代码是正确的,但如果您想使用结果,则需要存储已编译方法的结果。所以你的代码应该是 -
var dump = compiled({ name: "dadf" });
alert(dump);