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。

  • 相关阅读:
    poj1811
    linux系统nginx如何部署vue项目(附详细步骤)
    vue中设置input输入框的值为正整数,不能为负数和小数
    nginx(windows)如何部署vue项目
    vue多个表单验证(Promise.all)
    vue 路由传递参数,刷新页面 数据变成 [Object object]
    vue中解决父组件给子组件传值,子组件拿不到值
    vue项目封装axios请求的get、post、put、delect请求
    vue代码格式化-eslint
    vue后台管理项目PC端页面自适应
  • 原文地址:https://www.cnblogs.com/hwaggLee/p/4573528.html
Copyright © 2011-2022 走看看