如果 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>