4009关注13303浏览
我定义了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.
-
至过去的我
2044人对此回答表示赞同
我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多> -
Avery
20人对此回答表示赞同
该问题已曲线解决,谢谢各位
展开200回复分享发布于 6年前评论(0)
收起评论
-
Thom
8人对此回答表示赞同
要使用函数可参考wxs用法
展开80回复分享发布于 6年前评论(0)
收起评论
-
阿尔法-Sco
2人对此回答表示赞同
这个只能按照方式一来写的
展开20回复分享发布于 6年前评论(0)
收起评论