【问题标题】:How to convert html into javascript string using gulp task?如何使用 gulp 任务将 html 转换为 javascript 字符串?
【发布时间】:2016-05-17 07:59:59
【问题描述】:

输入

<div id="main">
   <div>
   Sample Html
   </div>
</div> 

输出

  var myvar = '<div id="main">'+
    '   <div>'+
    '   Sample Html'+
    '   </div>'+
    '</div>';

我想转换html模板并将输出添加到模板部分的角度指令中。

【问题讨论】:

  • 我需要将 html 模板添加到指令模板部分。为此,我想从 html 生成一个 javascript 字符串,以便可以将其添加/替换到指令模板中。

标签: javascript angularjs gulp


【解决方案1】:

正如@dfsq 建议您需要html2js 插件:

var gulp = require('gulp');
var html2js = require('gulp-html2js');
gulp.task("createTemplates", function(){
    //create js templates for templatecache
    return gulp.src([baseDirectory + "/your_template_dir/*.tpl.html"])
        .pipe(html2js("directive.templates.js", {
            base: baseDirectory,
            name: "my.templates" //module name for injector
        })).pipe(gulp.dest("your_output_directory"));
});

创建:

(function(module) {
    try { app = angular.module("my.templates"); }
    catch(err) { app = angular.module("my.templates", []); }
    app.run(["$templateCache", function($templateCache) {
        "use strict";

        $templateCache.put("your_template_dir/template.tpl.html","<p>Template content</p>");
    });
});

现在您可以将模块(“my.templates”)注入您的指令并使用“your_template_dir/template.tpl.html”作为您的模板网址。

【讨论】:

  • 您好,感谢您的回复,但我不想为模板创建另一个模块并注入我的指令。首先,我想将我的模板作为字符串注入到 {template'&lt;div id="main"&gt;'+ ' &lt;div&gt;'+ ' Sample Html'+ ' &lt;/div&gt;'+ '&lt;/div&gt;';} 这样的指令中,其次,我什至更改了模板中的任何内容,它也反映到了我的目录模板中。我已经使用 gulp-replace 完成了第二部分。但我被困在第一部分。我也尝试了第一部分来读取 html 文件,使用替换一些字符串来删除放入模板中的换行符。但问题是代码没有格式化。
  • 为什么要格式化代码?如果你缩小/丑化文件(你应该做什么,以减少网络流量),格式无论如何都会丢失。
猜你喜欢
  • 1970-01-01
  • 2021-10-23
  • 2017-02-23
  • 2018-07-06
  • 2015-12-03
  • 2014-05-29
  • 2020-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多