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
  • 相关阅读:
    RobotFramework关键字返回参数
    安装MySQL提示:应用程序无法正常启动(0xc000007b)
    python操作mysql数据库
    Windows安装mysql8.0
    Windows解决多版本python执行pip3时出错AttributeError: module 'enum' has no attribute 'IntFlag'?
    优秀测试博主
    RobotFramework与Jenkins集成发送邮件
    Robot+Jenkins配置发邮件
    PHP 两个多维数组根据某个键的值进行组合排序的几种思路
    debian下配置keepalived ha
  • 原文地址:https://www.cnblogs.com/gopark/p/8762441.html
Copyright © 2011-2022 走看看