.dot 模板和 angular 或者我应该在这里使用什么?

.dot template and angular or what should I use here?

这是一个一般性问题,不需要 "ready to use" 代码,而是一个我应该花时间研究的想法。我设置了 mustache 标签,因为可能相似。

这是一个使用 .doT 模板的快速 (4) 应用程序,我想在其中扩展一些 angular (1.4.3) 功能。

  1. 我似乎无法使用 .doT 模板和 angularjs,我就在这里? .我正在尝试让它运行 .html 模板文件和他的 angular 应用程序但没有成功(return 404 原因找不到模板,但是当我使用 ejs ,它确实有效(因为它读取 .html 个文件)

2。仍然,想知道以防万一我在上面错了。考虑到 this anwer 状态可以将多视图引擎与合并一起使用。是可能的,如何使用 angular 来完成? (只是一个提示,不需要是整个实现)

  1. 我知道 this answer 可以在下面使用这个,但也说最好使用助手,可以使用助手 in.doT 模板吗? ,怎么样?

    appModule.config(function($interpolateProvider) {
      $interpolateProvider.startSymbol('{[{');
      $interpolateProvider.endSymbol('}]}');
    });
    
  2. 考虑到以上情况。你说2和3中哪一个会更快?

  3. 如果我将我的应用程序更改为 ejs 视图引擎,速度会快得多吗?

逐点:

  1. 这是不正确的,.doT 模板与 Angular 配合使用效果很好,我都用过,只要你用点渲染路线。

     router.get("/blog/new", function(req, res) {
         res.render("owner/blog/create");
     });
    

并在您的 angular 提供商中设置一个状态,例如

  $stateProvider
   ...
    .state("owner-new-blog", {
        url: "/blog/new",
        templateUrl: "/owner/blog/new",
        controller: "CreateUpdateCtrl"
    })
  1. 没有必要使用合并中间件,.doT 模板开箱即用 angular 模板,除非您更改 .doT 默认参数。
  2. 是的...就是这样,就像这样 post

    var dT = require('doT');
    var tpl = {
         tmpl:dT.template('{{=this.helper()}}'),
         helper: function(){
             /* do what you want to do */
         }
    }
    tpl.tmpl(); // render template
    
  3. 如您在此 benchmark 中所见,如果您在应用程序中设置双引擎,.doT 会非常快,如果您设置了功能扩展,则速度会有点慢doT 中的助手比拥有两个引擎更轻松......因此,向点添加助手更快。

  4. 更改为 ejs 没有意义,dot 非常快,而且是支持布局和局部的高级模板引擎。而且,在我看来,还是更快。