博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JsRender for object 语法说明
阅读量:5291 次
发布时间:2019-06-14

本文共 1118 字,大约阅读时间需要 3 分钟。

     JsRender 作为一款JavaScript模版引擎,必不可少的会有循环功能,也就是for,但由于JsRender过于灵活,for竟然可以接受object作为循环对象。

     {

{for Array}}和{
{for Object}}都是允许的,{
{for Array}}大家都能理解,就是遍历一个数组,逐个取出每个元素。但{
{for Object}}就有点让人匪夷所思了,而且官方文档只是举了个没什么帮助的例子,其他无任何说明。

     刚开始小菜以为{

{for Object}}的用意是遍历该Object的所有属性,但仔细一想,这个功能{
{props Object}}已经实现了,props标签的作用就是遍历Object所有属性,有多少个属性,就循环多少次,每次循环都会有两个隐藏的属性:key,prop,key代表属性名,prop代表属性值,用起来非常方便。

     实际上,{

{for Object}}并不是循环,它可以理解成进入(Into),也就是说进入到Object环境中,把当前的上下文设置为Object,类似于Handlebars.js中的with。

     举个例子:

data:

1 { 2   "title": "The A team", 3   "members": [ 4     { 5       "name": "Pete", 6       "city": "members_city", 7       "address": { 8         "city": "address_city", 9         "city1": "address_city1",10         "city2": "address_city2"11       }12     }13   ]14 }

template markup:

1 {
{
for members}}2 {
{
for address}}3

.{

{:city}}

4 {
{/for}}5 {
{/for}}

result:

1 address_city

 

     从结果可以看出,虽然members的item下也有city属性,但由于通过{

{for address}}进入到了address指向的Object中,{
{:city}}直接从address中获取了。

     同时,address有三个属性,但结果只输出了一行,证明{

{for Object}}是不会循环的,仅仅是切换一下this。

 

转载于:https://www.cnblogs.com/iyangyuan/p/4064108.html

你可能感兴趣的文章
81、iOS本地推送与远程推送详解
查看>>
Sharepoint online 如何使用asp.net开发项目!!!
查看>>
C#基础_注释和VS常用快捷键(一)
查看>>
http协议
查看>>
动态调用webservice
查看>>
2017-05-18
查看>>
python带header
查看>>
虚拟DOM
查看>>
IClient for js开发之地图的加载
查看>>
用css画三角形(提示框三角形)
查看>>
Uber中国在地方城市的人员架构是怎样的?
查看>>
再来一篇装逼老文章:屏幕传输算法
查看>>
Delphi 7下最小化到系统托盘
查看>>
抖动代码
查看>>
lsblk请参阅块设备
查看>>
SVM-SVM概述
查看>>
STL algorithm算法lower_bound和upper_bound(31)
查看>>
linux系统下怎么安装.deb文件?
查看>>
javascript常见编程模式举例
查看>>
列出man手册所有函数的方法
查看>>