zoukankan      html  css  js  c++  java
  • 在handlebars.js {{#if}}条件下的逻辑运算符解决方案

    解决方案。这增加了比较运算符。

    Handlebars.registerHelper('ifCond', function (v1, operator, v2, options) {
    
    
        switch (operator) {
            case '==':
                return (v1 == v2) ? options.fn(this) : options.inverse(this);
            case '===':
                return (v1 === v2) ? options.fn(this) : options.inverse(this);
            case '!=':
                return (v1 != v2) ? options.fn(this) : options.inverse(this);
            case '!==':
                return (v1 !== v2) ? options.fn(this) : options.inverse(this);
            case '<':
                return (v1 < v2) ? options.fn(this) : options.inverse(this);
            case '<=':
                return (v1 <= v2) ? options.fn(this) : options.inverse(this);
            case '>':
                return (v1 > v2) ? options.fn(this) : options.inverse(this);
            case '>=':
                return (v1 >= v2) ? options.fn(this) : options.inverse(this);
            case '&&':
                return (v1 && v2) ? options.fn(this) : options.inverse(this);
            case '||':
                return (v1 || v2) ? options.fn(this) : options.inverse(this);
            default:
                return options.inverse(this);
        }
    });

    在像这样的模板中使用它:

    {{#ifCond var1 '==' var2}}

    脚本

    Handlebars.registerHelper 'ifCond', (v1, operator, v2, options) ->
        switch operato
            when '==', '===', 'is'
                return if v1 is v2 then options.fn this else options.inverse this
            when '!=', '!=='
                return if v1 != v2 then options.fn this else options.inverse this
            when '<'
                return if v1 < v2 then options.fn this else options.inverse this
            when '<='
                return if v1 <= v2 then options.fn this else options.inverse this
            when '>'
                return if v1 > v2 then options.fn this else options.inverse this
            when '>='
                return if v1 >= v2 then options.fn this else options.inverse this
            when '&&', 'and'
                return if v1 and v2 then options.fn this else options.inverse this
            when '||', 'or'
                return if v1 or v2 then options.fn this else options.inverse this
            else
                return options.inverse this
  • 相关阅读:
    Java技术 第九次实验
    JAVA第八次作业
    Java第七次作业--图形用户界面
    Java第六次作业
    Java第五次作业
    《Java技术》第四次作业
    Java技术第三次作业
    《Java技术》第二次作业
    《Java技术》第一次作业
    ActiveQq的代码实现
  • 原文地址:https://www.cnblogs.com/gopark/p/8762441.html
Copyright © 2011-2022 走看看