art-template 模板引擎 数组对象传递
需要填充select,其前端代码如下
<div class="col-sm-4"> <label for="selectBockNO">Block NO</label> <select class="form-control" id="selectBockNO" size="1" multiple title="按住 Ctrl (windows) / Command (Mac) 按钮来选择多个选项"> </select> </div>
JQuery侦测到enter事件后,post获取数据,在正常获取到数据,然后利用art-template提供的template function获取html,
不过注意将数组对象先转化为对象集合(即下述{datas: data}),直接使用data,即只用template('tpl-select',data)是无效的。
var inputLotNO = $('#inputLotNO');
inputLotNO.keydown(function (event) {
if (event.keyCode == 13) {
console.log(event.keyCode);
var lotNO = inputLotNO.val().trim();
if (lotNO.length == 0) {
inputLotNO.focus();
alert("没有Lot NO");
return false;
}
$("#selectBockNO").empty();
axios.post('/Home/LdsBlock', "strLot=" + lotNO).then(function (response) {
console.log(response.data);
if (response.status == 200) {
var data = response.data;
if (data.length > 0) {
var strHtml = template('tpl-select', { datas: data }); //tpl-select是模板ID
$("#selectBockNO").html(strHtml); //document.getElementById("selectBockNO").innerHTML = strHtml;//#selectBockNo是需要填充元素ID
}
}
}).catch(function (error) {
console.log(error);
});
}
}
);
模板如下,注意其与上述{ datas: data })中的datas要保持一致……若要声明datas中的item,index,可声明为 {{each item index}},详细见其语法 http://aui.github.io/art-template/zh-cn/docs/syntax.html。
<script id="tpl-select" type="text/html">
{{each datas }}
<option>{{$value.BLOCK}}</option>
{{/each}}
</script>
从后端拿到的数据如下,

*****有道无术,术尚可求;有术无道,止于术。*****

浙公网安备 33010602011771号