下划线 js 模板不起作用
underscore js template does not work
这应该很简单,
但我不知道为什么它不起作用。我在这里浪费了大约一整天。
https://jsfiddle.net/panyongfeng/m73vnz9j/
<script>
var tpl = "hello: <%= name %>";
var compiled = _.template(tpl);
compiled({
name: "dadf"
});
alert(compiled());
</script>
刚收到"hello result",应该是hello dadf。
你能指出什么不对吗?
谢谢
您误解了文档中的示例。当他们这样说时:
var compiled = _.template("hello: <%= name %>");
compiled({name: 'moe'});
=> "hello: moe"
上下文是他们在 REPL 中工作,就好像他们在命令行中 运行 node
一样。这意味着 =>
之后的内容是最后一个表达式的结果,而 hello: moe
字符串是 compiled({name: 'moe'})
returns。 运行 模板函数 returns 以字符串形式填充的模板,它不会将结果存储在任何地方。
您想放弃最后一个 alert
电话以支持此:
alert(compiled({ name: "dadf" }));
你的代码是正确的,但如果你想使用结果,那么你需要存储编译方法的结果。所以你的代码应该是 -
var dump = compiled({ name: "dadf" });
alert(dump);
这应该很简单, 但我不知道为什么它不起作用。我在这里浪费了大约一整天。
https://jsfiddle.net/panyongfeng/m73vnz9j/
<script>
var tpl = "hello: <%= name %>";
var compiled = _.template(tpl);
compiled({
name: "dadf"
});
alert(compiled());
</script>
刚收到"hello result",应该是hello dadf。 你能指出什么不对吗? 谢谢
您误解了文档中的示例。当他们这样说时:
var compiled = _.template("hello: <%= name %>");
compiled({name: 'moe'});
=> "hello: moe"
上下文是他们在 REPL 中工作,就好像他们在命令行中 运行 node
一样。这意味着 =>
之后的内容是最后一个表达式的结果,而 hello: moe
字符串是 compiled({name: 'moe'})
returns。 运行 模板函数 returns 以字符串形式填充的模板,它不会将结果存储在任何地方。
您想放弃最后一个 alert
电话以支持此:
alert(compiled({ name: "dadf" }));
你的代码是正确的,但如果你想使用结果,那么你需要存储编译方法的结果。所以你的代码应该是 -
var dump = compiled({ name: "dadf" });
alert(dump);