laytpl 不支持 {{ 开头,建议允许

建议 未结
5 172
jokin132
jokin132 2018-8-10
悬赏:20飞吻
{{# if(d.isActive){ }}<i>是</i>{{# }else{ }}<i class='red'>否</i>{{# } }}

以上模版报错:
unrecognized expression: {{# if(d.isActive){ }}<i>是</i>{{# }else{ }}否{{# } }}
回帖
  • jokin132
    2018-8-10
    在table的cols中设置如下模版:
    templet:"<i class='layui-icon {{# if(d.isActive){ }}layui-icon-ok{{# }else{ }}layui-icon-close{{# } }}'></i>"

    templet不起作用
    0 回复
  • vip_admin
    2018-8-10
    templet:'<div><i></i></div>'
    要加一层div
    0 回复
  • jokin132
    2018-8-10
    @vip_admin 加标签是可以,不能加的时候,怎么处理呢?有的时候,就是不想要加div

    0 回复
  • @jokin132 不加是用不了的,源码里面做了处理了,如果是一个字符串会用$(templet)变成一个jquery对象,然后找到里面的html这个文档里面没有说明,只说了要加上div,但是没有解释,如果不加上一个div之类的直接上templet语句可能就少东西了,这个主要是为了匹配两种写法#开头的或者.之类的选择器,或者一段html代码,所以规定是这么规定,那么就按照规定的来吧,吃掉个div也不会有什么特别的好处不是么?
    0 回复
  • jokin132
    2018-8-11
    理解了你们的实现方式,非常感谢。不过当#开头的选择器时,你们用的取的是innerHTML,如果div等标签取的也是innerHTML,则用户未免会理解错误。如:<div class="mycsss">{{ d.text }}</div>,这样就导致myclass不起作用了,而用户却不知道。
    建议:文档上补充清楚,避免用户理解偏差。或者修改实现方式,判断非#开头的自动加上<div></div>后,取innerHTML。
    0 回复