如一下文档所诉,你写完,做渲染没有一点问题,但是做二级联动,要ajax获取数据后再次渲染 ,坑就出来了。
form.on('select(quiz1)', function(data){
//ajax 获取城市
$.ajax({
url:"{:url('common/common/ajax_get_city')}",
data:{'parent_id':data.value},
dataType:'json',
async:false,
success:function(e){
data.cities = e.list;
}
});
var getTpl = cities.innerHTML
,view = document.getElementById('quiz2');
laytpl(getTpl).render(data, function(html){
view.innerHTML = html;
});
form.render('select');
});
如上代码写完之后,渲染,会报错,渲染模板找不见,因为我把模板写在body里边了,渲染完成之后dom对象没了。找不见你的 模板了,再次渲染就不能了。
所以layui的模板并不能放在任何位置,最好放在body外边。
“”你也可以将模板存储在页面或其它任意位置: “” 文档里的这句话就是坑爹的。
如下这样的模板放在div里边,第二次渲染的时候是找不见模板的。懂吗