zoukankan      html  css  js  c++  java
  • jsrender for array 和for object语法

    for array 循环数组

    循环使用案例

    定义数组数据

    var  data = {
       names: ["Maradona","Pele","Ronaldo","Messi"]
     }

    模版中使用

    {{for names}}
      <div>
        <b>{{: #index+1}}.</b>
        <span>{{: #data}}</span>
      </div>
    {{/for}}

    输出结果

    1. Maradona
    2. Pele
    3. Ronaldo
    4. Messi

     索引可以在循环中通过特殊字面量#index获取,特殊字面量#data相当于this,在本例中表示每一个name。

    另jsrender中使用for循环时如使用if等判断时虽然不创建常规数据作用域,但却干扰了隐藏作用域。也就是说,{{if }}不会阻断常规数据(你传入的数据)的可见性,但会干扰隐藏数据(#index、#parent)的可见性。

    所以获取索引下标时尽量使用#getIndex()获取索引,避免使用#index,除非你的应用足够简单。

    可以尝试下面两者使用后的区别对比

    1.

    {{for names}}
      {{if #data.indexOf("M") == 0}}
        <div>
          <b>{{: #index+1}}.</b>
          <span>{{: #data}}</span>
        </div>
      {{/if}}
    {{/for}}

    2.

     {{for names}}
       {{if #data.indexOf("M") == 0}}
         <div>
           <b>{{: #getIndex()+1}}.</b>
           <span>{{: #data}}</span>
         </div>
       {{/if}}
     {{/for}}

    for object 进入object中

    这里for不代表循环,表示进入到object对象中。把当前的上下文设置为Object,类似于Handlebars.js中的with。

     举个例子:

    var data =
    {
      "title": "The A team",
      "members": [
        {
          "name": "Pete",
          "city": "members_city",
          "address": {
            "city": "address_city",
            "city1": "address_city1",
            "city2": "address_city2"
          }
        }
      ]
    }

    模版

    {{for members}}
      {{for address}}
        <p>.{{:city}}</p>
      {{/for}}
    {{/for}}

    结果

    address_city

      从结果可以看出,虽然members的item下也有city属性,但由于通过{{for address}}进入到了address指向的Object中,{{:city}}直接从address中获取了。

         同时,address有三个属性,但结果只输出了一行,证明{{for Object}}是不会循环的,仅仅是切换一下this。

  • 相关阅读:
    机器学习书籍推荐
    25个机器学习面试题,期待你来解答
    观点 | 如何优雅地从四个方面加深对深度学习的理解
    Azure Public IP DNS域名
    SSH不允许Root登陆的方法
    MySQL on Azure高可用性设计 DRBD
    Linux ssh 不需要输入密码的方法
    MySQL on Azure高可用性设计 DRBD
    Express Route的配置
    Azure PIP (Instance Level Public IP)
  • 原文地址:https://www.cnblogs.com/hwaggLee/p/4573528.html
Copyright © 2011-2022 走看看