我定义了textTmpl、numberTmpl、radioTmpl、checkboxTmpl共4个template,根据item.type来匹配模板的name,目前按【方式1】写是可以正常渲染,但是按【方式2】无法正常渲染


方式1:

<block wx:for="{{questions}}" wx:key="id">

<template is="{{item.type == 'TEXT' ? 'textTmpl' : ( item.type == 'NUMBER' ? 'numberTmpl' : ( item.type == 'RADIO' ? 'radioTmpl' : (item.type == 'CHECKBOX' ? 'checkboxTmpl' : 'default')))}}" data="{{...item}}" />

</block>


方式2:

<block wx:for="{{questions}}" wx:key="id">

<template is="{{getIs(item)}}" data="{{...item}}" />

</block>


page中定义了函数getIs,虽然是照搬,但实际的判断逻辑不止根据item.type匹配,还会有别的字段校验逻辑


getIs:function(item){

console.log(item.type)

return item.type == 'TEXT' ? 'textTmpl' : (item.type == 'NUMBER' ? 'numberTmpl' : (item.type == 'RADIO' ? 'radioTmpl' : (item.type == 'CHECKBOX' ? 'checkboxTmpl' : 'default')))

}


微信开发工具的报错信息:Template "undefined" not found.

展开全部
收起
3回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Avery

    20人对此回答表示赞同

    该问题已曲线解决,谢谢各位

    展开
    20
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Thom

    8人对此回答表示赞同

    要使用函数可参考wxs用法

    展开
    8
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 阿尔法-Sco

    2人对此回答表示赞同

    这个只能按照方式一来写的

    展开
    2
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部