我爱上了.NET MVC 3中的剃刀模板.对于java有什么关系吗?
我正在寻找一些我可以避免使用JSTL标签的东西,而是做这样的事情:
<c:if test=${bla}>
<span>my html</span>
</c:if>
Run Code Online (Sandbox Code Playgroud)
而是做
@if(bla)
{
<span>my html</span>
}
Run Code Online (Sandbox Code Playgroud)
我假设必须有相似之处
我真的很喜欢django/jinja2模板语言.它们的语法非常简单,而且功能多样.在javascript中是否有类似于语法和功能的内容,或者如果不是两者,至少在功能方面.
我查看了下划线,jquery模板和小胡子模板,但它们似乎都不是我想要的.
补充说明
我认为所有的库(我看过)胡子是最好的,但我不喜欢语法.例如这个胡子模板
{{#people}}
{{name}}
{{/people}}
{{^people}}
No people :(
{{/people}}
Run Code Online (Sandbox Code Playgroud)
与django的模板相比:
{% for person in people %}
{{ person.name }}
{% empty %}
No people :(
{% endfor %}`
Run Code Online (Sandbox Code Playgroud)
应用过滤器也是一样的.例如:
{{#filter}}{{value}}{{/filter}}
Run Code Online (Sandbox Code Playgroud)
VS
{{ value|filter }}
Run Code Online (Sandbox Code Playgroud)
我认为django/jinja2方法更干净,感觉更自然.
那么,是否有任何js库的模板与django/jinja非常相似?如果没有,我想我必须忍受muschache(或者其他一些好的js库 - 我愿意接受建议),但它感觉不对.
谢谢.
javascript jquery template-engine language-comparisons jinja2
我正在寻找一个库或命令行脚本,它允许我创建我可以从命令行生成的自定义模板.铁轨脚手架发电机上的红宝石几乎与我想做的相同.我甚至更喜欢用Ruby编写(但它不能要求Rails,因为我可能不会在Ruby应用程序中使用它).这样的脚本已经有哪些?
我正在考虑为它创建语法高亮显示,但我不知道这种特定类型模板的常规缩写.
我正在向模板传递一个Event对象,我需要做的是检查@event.getSeverity值.如果值为正,我想以<div>绿色为特定颜色.如果值为负,我想为<div>红色特定颜色.
我找不到定义变量的方法.可能吗?应该是我想的.
无论如何,实现这一目标的最简单方法是什么?
谢谢
我熟悉Angularjs(1.x)并在指令中使用模板.
目前我正在学习nodejs,并且作为课程模板引擎的一部分被提及.在后端使用它们有什么好处?
目前我看不到任何用途.
Groovy模板中的常规操作是将命名对象绑定到模板的范围,如下所示:
map.put("someObject",object)
template.bind(map)
Run Code Online (Sandbox Code Playgroud)
然后,在模板中我可以像这样引用并使用'someObject':
someObject.helloWorld()
someObject.helloWorld("Hi Everyone!")
someObject.helloWorld("Hi", "Everyone!")
Run Code Online (Sandbox Code Playgroud)
在模板内部,Groovy还允许我将方法句柄定义为模板中的第一类变量,如下所示:
someObject = someObject.&helloWorld
Run Code Online (Sandbox Code Playgroud)
然后,我可以在不参考对象和方法名称的情况下执行这些操作:
someObject()
someObject("Hello World")
someObject("Hello", "World")
Run Code Online (Sandbox Code Playgroud)
如何在'template.bind(map)'阶段绑定这样的方法引用以及自动解析脚本提供的所有参数组合,如'.&'运算符?
使用MethodClosure不起作用 - 这是一个简单的测试和我得到的错误
class TestMethodClass {
public void test() {
System.out.println("test()");
}
public void test(Object arg) {
System.out.println("test( " + arg + " )");
}
public void test(Object arg1, Object arg2) {
System.out.println("test( " + arg1 + ", " + arg2 + " )");
}
}
String basic = "<%" +
" def mc1=testInstance.&test;" +
"println \"mc1 class ${mc1.getClass()}\";" + …Run Code Online (Sandbox Code Playgroud) FreeMarker模板支持使用以下语法的if语句
<#if hot>
It's hot.
</#if>
Run Code Online (Sandbox Code Playgroud)
我查看了文档,找不到if-else语句的任何支持.当然,我可以通过以下方式获得相同的结果:
<#if hot>
It's hot.
</#if>
<#if !hot>
It's not hot.
</#if>
Run Code Online (Sandbox Code Playgroud)
在FreeMarker中是否支持if-else?
我在Liquid中创建了一个自定义链接标记,我试图将液体变量传递给该标记的调用,就像这样
{{ assign id = 'something' }} // this value is actual dynamic while looping through data
{% link_to article: id, text: 'Click Me!' %} // my custom tag
Run Code Online (Sandbox Code Playgroud)
但是,这会导致article参数按照上面的assign语句以'id'而不是'something'的形式传递.
有谁知道如何将变量传递给标签调用?
现在有许多JavaScript MVC框架可以与Handlebars.js一起使用,提供模型/控制器和模板之间的数据绑定.目前我正在单独实现Handlebars.js(使用jQuery)并且需要在我的主代码和模板之间绑定数据,以便后者自动更新.是否有一种本地方式在Handlebars或插件中执行此操作?如果没有,是否有这些MVC框架的任何组件带来了这个功能,并且可以在没有全栈框架的情况下单独使用?
template-engine ×10
java ×4
javascript ×2
asp.net-mvc ×1
binding ×1
data-binding ×1
ejs ×1
freemarker ×1
go ×1
groovy ×1
jinja2 ×1
jquery ×1
liquid ×1
node.js ×1
pug ×1
scala ×1
spring-mvc ×1
templates ×1
templating ×1