标签: template-engine

快速把手,express-hbs和hbs模块之间有什么区别,

我正在尝试使用带有Express的Handlebars,我发现模块表达式把手,express-hbs和hbs,它们似乎都是类似的.鉴于我需要能够使用布局和部分,我应该注意它们之间的主要区别是什么?

template-engine node.js express handlebars.js

30
推荐指数
1
解决办法
1万
查看次数

在Mustache模板中转义双括号{{...}}.(在NodeJS中模板化模板)

我正在尝试模板模板,如下所示:

{{{
{
  "name" : "{{name}}",
  "description" : "{{description}}"
}
}}}

{{{debug this}}}
Run Code Online (Sandbox Code Playgroud)

<h1>{{name}}</h1>
Run Code Online (Sandbox Code Playgroud)

我希望三个括号留在哪里,但是用传入的JSON代替双括号.任何人都知道在没有编写后处理JS代码的情况下执行此操作的最佳方法,如果没有,是否有一个很好的nodeJS模板引擎场景类型?

javascript template-engine node.js mustache

29
推荐指数
4
解决办法
3万
查看次数

laravel blade,如何附加到一个部分

如果您查看laravel官方文档http://laravel.com/docs/4.2/templates 它说给出这个布局:

<!-- Stored in app/views/layouts/master.blade.php -->

<html>
    <body>
        @section('sidebar')
            This is the master sidebar.
        @show

        <div class="container">
            @yield('content')
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

通过这种观点扩展

@extends('layouts.master')

@section('sidebar')


    <p>This is appended to the master sidebar.</p>
@stop

@section('content')
    <p>This is my body content.</p>
@stop
Run Code Online (Sandbox Code Playgroud)

将附加到该部分sidebar.但实际上如果你尝试它不会附加,它只是覆盖扩展模板中的内容.

我听说过其他刀片功能@append, @prepend, @parent......似乎没有人工作.

除此之外,官方文档中的这个例子不起作用,我发现刀片文档非常差.例如@parent,刀片功能没什么.

php template-engine laravel blade laravel-4

29
推荐指数
2
解决办法
4万
查看次数

Emacs最好的代码模板工具是什么?

特别是,什么是最好的片段包?

特征:

  • 容易定义新片段(纯文本,默认自定义输入)
  • 在代码段中的预定义位置之间进行简单导航
  • 多次插入相同的自定义输入
  • 接受当前选定的文本作为自定义输入
  • 跨平台(Windows,Linux)
  • 用简洁的编程语言编写的动态计算表达式(嵌入式代码)(首选Perl,Python,Ruby)
  • 很好地与Emacs中的其他软件包共存

代码模板示例,forC中的简单循环:

for (int i = 0; i < %N%; ++i) {
  _
}
Run Code Online (Sandbox Code Playgroud)

这种常见代码的输入很多.我想调用一个代码模板或代码片段,为我插入样板代码.此外,它停止(在TAB或其他击键上)%N%(我的输入替换它)和光标的最终位置_.

emacs template-engine code-snippets

28
推荐指数
2
解决办法
1万
查看次数

模板引擎比仅使用PHP有什么真正的优势?

我只使用PHP开发我的Web应用程序用于视图文件,我不觉得有任何限制,但我听说有一致的开发人员提倡"外部"模板引擎.那么模板引擎提供的简单PHP缺乏什么呢?

我正在寻找实用的东西,所以我排除了以下内容:

  • 照顾糟糕的开发人员(即使用模板引擎,因为它会强迫您不要将代码混合到演示文稿中)
  • 语法简洁(我在Vim中<?php echo $stuff; ?>使用花括号进行映射,使用花括号不会有任何区别)
  • 非程序员的语法更简单(我单独开发,这不是问题)

php templates template-engine

28
推荐指数
3
解决办法
7421
查看次数

处理mustache.js中的空列表

我正在使用mustache.js在javascript中渲染模板.我想<h2>在下面的示例中检查列表是否为空以隐藏标记.这是可能的还是mustache.js太逻辑了?

这是模板:

<h2>Persons:</h2>
<ul>
  {{#persons}}
    {{name}}
  {{/persons}}
</ul>
Run Code Online (Sandbox Code Playgroud)

这是数据:

{
  "persons":[
    {"name": "max"},
    {"name": "tom"}
  ]
}
Run Code Online (Sandbox Code Playgroud)

javascript template-engine list mustache

28
推荐指数
5
解决办法
2万
查看次数

NVelocity项目已经死了吗?还有替代品吗?

我正在寻找.NET/C#的模板引擎来在我的应用程序中生成电子邮件通知.我过去读过有关NVelocity的内容并认为它符合我的需求,但似乎这个项目已经死了.

您是否仍然建议将NVelocity用于此目的,或者您可以建议任何替代方案吗?

注意:我发现了一些其他模板引擎,但这些引擎主要是ASP.NET MVC(Brail,NHaml等)的"视图引擎".但我认为这些不是我想要的.

.net templates nvelocity template-engine

27
推荐指数
1
解决办法
1万
查看次数

使用Velocity/FreeMarker模板进行国际化电子邮件

如何使用Velocity或FreeMarker等模板引擎来构建邮件正文?

通常人们倾向于创建以下模板:

<h3>${message.hi} ${user.userName}, ${message.welcome}</h3>
<div>
   ${message.link}<a href="mailto:${user.emailAddress}">${user.emailAddress}</a>.
</div>
Run Code Online (Sandbox Code Playgroud)

并使用以下属性创建资源包:

message.hi=Hi
message.welcome=Welcome to Spring!
message.link=Click here to send email.
Run Code Online (Sandbox Code Playgroud)

这就产生了一个基本问题:如果我的.vm文件变得很大,文本行很多,那么在单独的资源包(.properties)文件中翻译和管理它们就变得很繁琐.

我要做的是,.vm为每种语言创建一个单独的文件,类似于mytemplate_en_gb.vm, mytemplate_fr_fr.vm, mytemplate_de_de.vm然后以某种方式告诉Velocity/Spring根据输入Locale选择正确的文件.

这在春天有可能吗?或者我应该考虑更简单明了的替代方法?

注意:我已经看过如何使用模板引擎创建电子邮件主体的Spring教程.但它似乎没有回答我关于i18n的问题.

java spring template-engine internationalization

27
推荐指数
2
解决办法
2万
查看次数

AngularJS客户端数据绑定和服务器端模板

AngularJS使用双向客户端数据绑定(来自AngularJS Developers指南): 双向数据绑定

有没有人考虑使用服务器端模板引擎AngularJS双向客户端数据绑定的混合.像这样的东西: 混合数据绑定

我正在考虑将AngularJS仅用于页面的部件(组件)?这是个好主意吗?

我想听听你是否已经有类似方法的经验,有什么缺点和优点......

javascript data-binding template-engine angularjs

27
推荐指数
1
解决办法
1万
查看次数

把手,加载外部模板文件

我的目标是将所有Handlebars模板放在一个文件夹中,如下所示:

templates/products.hbs
templates/comments.hbs
Run Code Online (Sandbox Code Playgroud)

我通过粗略的谷歌搜索在一些地方找到了这个片段,显然会在外部文件中加载Handlebar模板,这比将一堆模板放在一个索引文件中更有意义.

(function getTemplateAjax(path) {
    var source;
    var template;

    $.ajax({
        url: path, //ex. js/templates/mytemplate.handlebars
        cache: true,
        success: function(data) {
            source    = data;
            template  = Handlebars.compile(source);
            $('#target').html(template);
        }               
    });         
})()
Run Code Online (Sandbox Code Playgroud)

问题是,我不明白这个功能或如何使用它.为什么整个函数包含在括号中然后进行函数调用?例如,(function x() { ... })()我不知道这是什么做的.

如果我没有弄错的话,看起来就像$('#target')是不应该被硬编码的.此外,这不应该在data某处设置变量,因此模板中引用的变量将起作用吗?似乎正确的功能应该是:

function getTemplateAjax(path, target, jsonData) {
  var source;
  var template;

  $.ajax({
    url: path, //ex. js/templates/mytemplate.handlebars
    cache: true,
    success: function(data) {
      source    = data;
      template  = Handlebars.compile(source);
      $(target).html(template(jsonData));
    }               
  });         
}
Run Code Online (Sandbox Code Playgroud)

旁注:如果有人可以指向一个更好的模板引擎,实际上本身支持外部模板文件,并且比Handlebars更有条理,我会永远感激.

另一个问题:我实际上无法命名我的文件mytemplate.hbs,因为当Ajax调用发生时,它将其视为二进制文件,并以二进制形式出现.我想这是将.hbs的服务器mime类型设置为text/html或text/plain的问题,但问题是这是一个Grunt服务器,我不知道如何更改其mime类型.

javascript template-engine handlebars.js

27
推荐指数
2
解决办法
6万
查看次数