【问题标题】:jsrender - How to pass javascript literal object to a custom tag?jsrender - 如何将 javascript 文字对象传递给自定义标签?
【发布时间】:2013-01-28 12:00:26
【问题描述】:

是否可以将 javascript 文字对象传递给 jsrender 中的自定义标签? 例如这样的:

{{tag parameter={width: 200, 
                 click: function(){
                            alert('clicked');
                      }
                } 
/}}

【问题讨论】:

  • 您在没有命名参数的情况下调用标签(例如 {{tag {field: 'hello'} \}}),但我无法使用 jsfiddle 使其工作。我收到一个解析错误:jsfiddle.net/pedz/N2kmj/9(您可以通过 firebug 看到)
  • 我的示例在 jsrender 中不起作用。我只想知道是否有可能以某种方式将文字对象传递给自定义标签。
  • 是的。我明白你的问题。我不知道答案。对不起。鲍里斯对此进行了监控,并可能会做出回应。我也会在空闲时间玩它。现在看来,这不可能。奇怪的是,传递字符串有效,但传递对象字面量无效。

标签: jsrender


【解决方案1】:

目前不支持,假设你没有设置allowCode=true。 JsRender 模板应该是无副作用的。 javascript 文字 {} 正在创建一个新的 Object(),所以它不是无副作用的。但是你可以通过模板参数/帮助器传入任何你想要的对象。有很多方法可以做到这一点,例如在模板上声明助手,声明全局助手,在.render(data, options) 调用中作为选项传入......然后你只需写{{tag parameter=~myPassedInObject}}。你也可以有一个返回不同对象的helper,比如{{tag parameter=~myWidthObject(200,...)}},

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2015-11-07
    • 2013-07-16
    相关资源
    最近更新 更多