相关疑难解决方法(0)

使用handlebars.js模板以数组中的最后一项为条件

我正在利用handlebars.js作为我的模板引擎,并且我希望只有当它是模板配置对象中包含的数组中的最后一项时才显示条件段.

{
  columns: [{<obj>},{<obj>},{<obj>},{<obj>},{<obj>}]
}
Run Code Online (Sandbox Code Playgroud)

我已经拉了一个助手来做一些相等/更大/更少的比较,并且已经成功识别出这样的初始项目但是没有运气来访问我的目标数组的长度.

Handlebars.registerHelper('compare', function(lvalue, rvalue, options) {...})

"{{#each_with_index columns}}"+
"<div class='{{#equal index 0}} first{{/equal}}{{#equal index ../columns.length()}} last{{/equal}}'>"+
"</div>"+
"{{/each_with_index}}"
Run Code Online (Sandbox Code Playgroud)

有没有人知道一个快捷方式,不同的方法,以及一些把手的优点,这将使我不必撕裂到handlebars.js引擎,以确定最佳的课程?

javascript arrays templating helpers handlebars.js

70
推荐指数
3
解决办法
6万
查看次数

除了在最后一个元素之后,如何在{{#each}}循环中的元素之间添加分隔符?

我有一个Handlebars模板,我正在尝试从数组生成以逗号分隔的项目列表.

在我的Handlebars模板中:

{{#each list}}
    {{name}} {{status}},
{{/each}}
Run Code Online (Sandbox Code Playgroud)

我希望,不要出现在最后一项上.有没有办法在Handlebars中执行此操作,还是需要回退到CSS选择器?

更新:基于克里斯托弗的建议,这是我最终实施的内容:

var attachments = Ember.CollectionView.extend({
    content: [],
    itemViewClass: Ember.View.extend({
        templateName: 'attachments',
        tagName: 'span',
        isLastItem: function() {
            return this.getPath('parentView.content.lastObject') == this.get('content');
        }.property('parentView.content.lastObject').cacheable()
    })
}));
Run Code Online (Sandbox Code Playgroud)

在我看来:

{{collection attachments}}
Run Code Online (Sandbox Code Playgroud)

和项目视图:

{{content.title}} ({{content.size}}) {{#unless isLastItem}}, {{/unless}}
Run Code Online (Sandbox Code Playgroud)

javascript handlebars.js ember.js

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

使用mustache.js行条带化和第一个/最后一个类

通常,人们希望将列表中的第一个和/或最后一个项目与其他项目区别对待.有没有办法用胡子做到这一点?行条纹怎么样?

(显然,在处理模板之后,人们总是可以使用jquery或其他任何方法来应用css类,或者其他什么,但我想知道模板级别的更多内容.)

javascript mustache

13
推荐指数
2
解决办法
7044
查看次数

如何使用 mustache 呈现 JSON 模板

我正在尝试使用以下模板生成一个带有小胡子的 JSON 文件:

{
    "name": "{{customer_info.first_name}}",
    "email": "{{contact_info.email}}",
    "campaign": {
        "campaignId": "{{contact_info.campaign.campaignId}}"
    },
    "tags": [
        {{#contact_info.tags}} 
        {
            "tagId": "{{tagId}}"
        },
        {{/contact_info.tags}}
    ]
}
Run Code Online (Sandbox Code Playgroud)

作为输出示例,我得到:

{
    "name": "Antonio",
    "email": "myemail@gmail.com",
    "campaign": {
        "campaignId": "pfft"
    },
    "tags": [
        {
            "tagId": "6prrtAP"
        },
        {
            "tagId": "64rrrE9"
        },
    ]
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这是一个错误格式的 JSON,因为在数组中的最后一个元素之后有一个不需要的“,”。

你们中的任何人都可以帮助我解决这个问题并删除逗号吗?

非常感谢

json mustache

6
推荐指数
1
解决办法
6130
查看次数