如果 Json 集为空,则呈现特殊模板
Render special template if Json set is empty
通常我有一个包含许多记录的数据集,例如:
data = [
{ name1: value, name2: value },
{ name1: value, name2: value }
];
当我的数组中有超过 0 条记录时想要使用一个模板,但当数据为空时想要应用不同的模板,例如:
data = [];
当其中一个命名元素为空时,{{if}} 条件语句工作正常,但我如何检查根数组是否为空以及select基于它的不同模板?
您可以通过多种方式做到这一点,但这里是一种方法。
将您的数据数组传递给 JsRender 模板,并将布尔值 noIteration
标志设置为 true(参见 example):
html = myTmpl.render(data, true);
这样模板只为数组呈现一次。
然后使用类似于下面的模板,使用 {{for}}
标记进行迭代,并在数组为空的情况下使用 {{else}}
...
<script id="myTmpl" type="text/x-jsrender">
{{for}}
this will render once for each item in the array
{{else}}
this will render if the array is empty
{{/for}}
</script>
(见Using the {{else}} tag with {{for}})
同样,您可以将数组作为数据的一部分传入:
var viewModel = {myArray: data, ...},
html = myTmpl.render(viewModel);
然后写:
<script id="myTmpl" type="text/x-jsrender">
{{for myArray}}
this will render once for each item in the array
{{else}}
this will render if the array is empty
{{/for}}
</script>
通常我有一个包含许多记录的数据集,例如:
data = [
{ name1: value, name2: value },
{ name1: value, name2: value }
];
当我的数组中有超过 0 条记录时想要使用一个模板,但当数据为空时想要应用不同的模板,例如:
data = [];
当其中一个命名元素为空时,{{if}} 条件语句工作正常,但我如何检查根数组是否为空以及select基于它的不同模板?
您可以通过多种方式做到这一点,但这里是一种方法。
将您的数据数组传递给 JsRender 模板,并将布尔值 noIteration
标志设置为 true(参见 example):
html = myTmpl.render(data, true);
这样模板只为数组呈现一次。
然后使用类似于下面的模板,使用 {{for}}
标记进行迭代,并在数组为空的情况下使用 {{else}}
...
<script id="myTmpl" type="text/x-jsrender">
{{for}}
this will render once for each item in the array
{{else}}
this will render if the array is empty
{{/for}}
</script>
(见Using the {{else}} tag with {{for}})
同样,您可以将数组作为数据的一部分传入:
var viewModel = {myArray: data, ...},
html = myTmpl.render(viewModel);
然后写:
<script id="myTmpl" type="text/x-jsrender">
{{for myArray}}
this will render once for each item in the array
{{else}}
this will render if the array is empty
{{/for}}
</script>