首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用gulp编译工具栏将唯一的json数据传递到车把模板中。

使用gulp编译工具栏将唯一的json数据传递到车把模板中。
EN

Stack Overflow用户
提问于 2017-03-09 07:06:18
回答 1查看 171关注 0票数 0

在我的index.handlebars文件中,我要这样做:

代码语言:javascript
复制
{{> article id = 'section-1'}}
{{> article id = 'section-2'}}

正如您所看到的,我将一个唯一的Id传递到每个项目模板实例中,这样它们就可以单独地成为目标。我这样做是因为我希望gulp-compile-handlebars用我在build.json文件中指定的唯一内容填充每个文章模板实例。然而,我很难在我的任务中找到关于如何正确地完成这一任务的文档。下面的代码..。

在我的gulpfile.js中,我这样做:

代码语言:javascript
复制
gulp.task('compileHandlebars', function () {
    var buildSettings = require('./build.json');
    var templateData = buildSettings,
    options = {
        batch : ['./src/assets/templates/'],
    }

    gulp.src('src/index.handlebars')
        .pipe(handlebars(templateData, options))
        .pipe(rename('index.html'))
        .pipe(gulp.dest('./dist'));
});

在我的build.json中,我这样做:

代码语言:javascript
复制
{
    "section-1":[{
        "title": "",
        "paragraph": "",
        "backgroundImageUrl": "",
        "figCaption": ""
    }],
    "section-2":[{
        "title": ",
        "paragraph": "",
        "backgroundImageUrl": "",
        "figCaption": ""
    }]
}

最后,在我的article.handlebars模板中,我要这样做:

代码语言:javascript
复制
<section class="row article-module-4" id="{{id}}">
    <div class="col-md-5"> 
        {{#if title}}
            <header>
                <h2>{{title}}</h2>
            </header>
        {{/if}}
        <p>{{paragraph}}</p>
        </div>
    <figure class="col-md-7">
        <div class="figure-img" style="background-image: url('{{backgroundImageUrl}}');"></div>
        <figcaption>{{figCaption}}</figcaption>
    </figure>
</section>
EN

回答 1

Stack Overflow用户

发布于 2017-03-10 00:58:18

我昨晚问这个的时候有点糊涂.今天早上我找到了我想做的事的解决方案..。

index.handlebars

代码语言:javascript
复制
{{#each this}}
    {{> article}}
{{/each}}

文章模板

代码语言:javascript
复制
{{#article}}
    <section class="row article-module" id="{{id}}">
        <div class="col-md-5"> 
            {{#if title}}
                <header>
                    <h2>{{title}}</h2>
                </header>
            {{/if}}
            <p>{{paragraph}}</p>
            </div>
        <figure class="col-md-7">
            <div class="figure-img" style="background-image: url('{{backgroundImageUrl}}');"></div>
            <figcaption>{{figCaption}}</figcaption>
        </figure>
    </section>
{{/article}}

build.json

代码语言:javascript
复制
[
    {
        "article": [
            {
                "id": "section-1",
                "title": "Section 1",
                "paragraph": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed viverra aliquet justo posuere rhoncus. Donec tempus eros sed rhoncus fermentum. Mauris nec congue quam. Morbi ullamcorper augue sed quam lacinia interdum. Duis porttitor iaculis posuere. Donec quis facilisis metus, id posuere ex. Vestibulum tincidunt enim a vehicula ultrices. Vestibulum rhoncus tincidunt augue ut ultrices. Aliquam quis sapien et erat varius fringilla. Nullam finibus pellentesque tortor eget tempus. Donec ultricies quam quis mi tincidunt imperdiet. Pellentesque porta euismod ipsum, ut finibus elit malesuada nec. Vivamus vehicula viverra arcu eu feugiat. Integer dapibus est ac gravida blandit. Morbi malesuada, sem non tincidunt iaculis, enim nisi congue tellus, ac pellentesque dolor neque in lacus. Donec non sem vitae felis accumsan dapibus tristique ut justo.",
                "backgroundImageUrl": "assets/images/ocean2.jpg",
                "figCaption": "news.com.au"
            }
        ]
    },
    {
        "article": [
            {
                "id": "section-2",
                "title": "Section 2",
                "paragraph": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed viverra aliquet justo posuere rhoncus. Donec tempus eros sed rhoncus fermentum. Mauris nec congue quam. Morbi ullamcorper augue sed quam lacinia interdum. Duis porttitor iaculis posuere. Donec quis facilisis metus, id posuere ex. Vestibulum tincidunt enim a vehicula ultrices. Vestibulum rhoncus tincidunt augue ut ultrices. Aliquam quis sapien et erat varius fringilla. Nullam finibus pellentesque tortor eget tempus. Donec ultricies quam quis mi tincidunt imperdiet. Pellentesque porta euismod ipsum, ut finibus elit malesuada nec. Vivamus vehicula viverra arcu eu feugiat. Integer dapibus est ac gravida blandit. Morbi malesuada, sem non tincidunt iaculis, enim nisi congue tellus, ac pellentesque dolor neque in lacus. Donec non sem vitae felis accumsan dapibus tristique ut justo.",
                "backgroundImageUrl": "assets/images/ocean3.jpg",
                "figCaption": "news.com.au"
            }
        ]
    }
]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42688817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档