fastadmin 如何构建组合题--Cannot read property '0' of undefined
以下是逻辑思考
一. k=0 单选 k=1 多选 k=2 判断 k=3 填空 k=4 简答 k=5 组合
这6种题型同级,写在一个字段中,使用json字符串的方式,进行存储
二.6种题型不同级
组合题,包含前5种,并且自成一个字段
字段内容,也使用json进行存储
三.存储数据的逻辑是
1.6种题型,都会post过去
2.但是,控制器,根据type,对数据进行过滤,最后传入到数据库
四:出现Cannot read property '0' of undefined
原因是什么?
https://www.cnblogs.com/cyh-blogs/p/13064306.html
首先Google翻一下:
见文之意:这里的意思就是模板在渲染时候,读取对象中的某个对象的属性值时,这个对象不存在,说通俗点就是三层表达式a.b.c,在对象a中没有对象b,那么读取对象a.b.c中的值,自然会报错。如果是两层表达式a.b则不会报错,返回的是undefined。
代码如下,追加的时候,提示Cannot read property '0' of undefined
<!--单选题 -->
<script id="sub_answer0" type="text/html">
<dd class="form-inline row">
<ins class="col-xs-12 col-sm-1"><input type="radio" name="row[answer0]" value="<%=row.key%>"/></ins>
<ins class="col-xs-12 col-sm-2"><input name="<%=name%>[<%=index%>][key]" class="form-control" placeholder="选项" size="10" value="<%=row.xuanda[0][index].key%>"/></ins>
<ins class="col-xs-12 col-sm-8"><input type="text" name="<%=name%>[<%=index%>][value]" class="form-control myeditor" placeholder="" value="<%=row.xuanda[0][index].value%>"/></ins>
<!--下面的两个按钮务必保留-->
<span class="btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></span>
</dd>
</script>
优化了一些写法,为了追加。并且把art-template弄到最新版,才能引入模板变量,注意,在value中,index直接写index
<!--单选题 -->
<script id="sub_answer0" type="text/html">
<% $imports.log(row) %>
<%if($imports.Object.keys(row).length==0){%>
<dd class="form-inline row">
<ins class="col-xs-12 col-sm-1"><input type="radio" name="row[answer0]" value="<%=row.key%>"/></ins>
<ins class="col-xs-12 col-sm-2"><input name="<%=name%>[<%=index%>][key]" class="form-control" placeholder="选项" size="10" value=""/></ins>
<ins class="col-xs-12 col-sm-8"><input type="text" name="<%=name%>[<%=index%>][value]" class="form-control myeditor" placeholder="" value=""/></ins>
<!--下面的两个按钮务必保留-->
<span class="btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></span>
</dd>
<%}else{%>
<dd class="form-inline row">
<ins class="col-xs-12 col-sm-1"><input type="radio" name="row[answer0]" value="<%=row.key%>"/></ins>
//错误写法。value="<%=row.xuanda[0][<%=index%>].value%>",value="<%=row.xuanda[0][<%=index%>].value%>",正确的如下
<ins class="col-xs-12 col-sm-2"><input name="<%=name%>[<%=index%>][key]" class="form-control" placeholder="选项" size="10" value="<%=row.xuanda[0][index].key%>"/></ins>
<ins class="col-xs-12 col-sm-8"><input type="text" name="<%=name%>[index][value]" class="form-control myeditor" placeholder="" value="<%=row.xuanda[0][<%=index%>].value%>"/></ins>
<!--下面的两个按钮务必保留-->
<span class="btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></span>
</dd>
<%}%>
</script>