每个循环内的车把比较操作员

时间:2016-01-29 08:54:49

标签: handlebars.js

我在车把页面上有两种类型的值,需要比较第一个和第二个。 我可以打印以下代码的值

{{articledetails.content_writer_id}}

在页面上写每个循环之前。现在我想比较如下的值。但是我无法在下面的代码中获得articledetails.content_writer_id的范围。

{{#each contentwriterdetails}}       
{{#compare this.id "==" articledetails.content_writer_id }}

我已经使用此代码注册了比较助手。

 handlebars.registerHelper('compare', function (lvalue, operator, rvalue, options) {
var operators, result;
if (arguments.length < 3) {
    throw new Error("Handlerbars Helper 'compare' needs 2 parameters");
}

if (options === undefined) {
    options = rvalue;
    rvalue = operator;
    operator = "===";
}

operators = {
    '==': function (l, r) { return l == r; },
    '===': function (l, r) { return l === r; },
    '!=': function (l, r) { return l != r; },
    '!==': function (l, r) { return l !== r; },
    '<': function (l, r) { return l < r; },
    '>': function (l, r) { return l > r; },
    '<=': function (l, r) { return l <= r; },
    '>=': function (l, r) { return l >= r; },
    'typeof': function (l, r) { return typeof l == r; }
};

if (!operators[operator]) {
    throw new Error("Handlerbars Helper 'compare' doesn't know the operator " + operator);
}

result = operators[operator](lvalue, rvalue);

if (result) {

    return options.fn(this);
} else {

    return options.inverse(this);
}

 });

以上的帮助工作正常,因为我已经检查过了。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:4)

使用父级的上下文路径:

{{#each contentwriterdetails}}       
{{#compare this.id "==" ../articledetails.content_writer_id }}