Avalon 学习系列(四)—— 循环遍历

2023-11-07

Avalon2ms-for 绑定集齐了 ms-repeat, ms-each, ms-with 的所有功能, 更加好用, 性能也提升了很多。

Avalon 不需要 vuereact 那样使用 key 属性来提高性能,内部已经帮你搞定了。

循环数组

ms-for 循环数组示例:

<!DOCTYPE html>
<html>

<head lang="en">
  <meta charset="UTF-8">
  <title>Demo Avalon</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script type="text/javascript" src="./avalon.js"></script>
  <script type="text/javascript">
    var vm = avalon.define({
      $id: "maincontainer",
      arr: ['上海', '北京', '广州', '深圳']
    })
  </script>
  <style>
    .ms-controller {
      display: none;
    }
  </style>
</head>

<body>
  <div>
    <div ms-controller="maincontainer">
      <ul>
        <li ms-for="($index,el) in @arr">{{$index+':'+el}}</li>
      </ul>
    </div>
  </div>
</body>

</html>

页面效果:
在这里插入图片描述

ms-for 支持下面的元素节点继续使用 ms-for,形成双重循环与多级循环;但双重循环必须对应的二维数组,几维循环对应几维数组。

示例:

<!DOCTYPE html>
<html>

<head lang="en">
  <meta charset="UTF-8">
  <title>Demo Avalon</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script type="text/javascript" src="./avalon.js"></script>
  <script type="text/javascript">
    var vm = avalon.define({
      $id: "maincontainer",
      arr: [
        { item: ['上海', '北京', '广州', '深圳'] },
        { item: ['上海', '北京', '广州', '深圳'] },
        { item: ['上海', '北京', '广州', '深圳'] },
        { item: ['上海', '北京', '广州', '深圳'] }
      ]
    })
  </script>
  <style>
    .ms-controller {
      display: none;
    }
  </style>
</head>

<body>
  <div>
    <div ms-controller="maincontainer">
      <ul>
        <li ms-for="el in @arr">
          <div ms-for='($index,piece) in el.item'>{{$index+':'+piece}}</div>
        </li>
      </ul>
    </div>
  </div>
</body>

</html>

页面效果:
在这里插入图片描述

循环对象

ms-for 循环对象示例:

<!DOCTYPE html>
<html>

<head lang="en">
  <meta charset="UTF-8">
  <title>Demo Avalon</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script type="text/javascript" src="./avalon.js"></script>
  <script type="text/javascript">
    var vm = avalon.define({
      $id: "maincontainer",
      styleInfo: {
        width: 400,
        height: 400,
        borderWidth: 1,
        borderColor: "green",
        borderStyle: "solid",
        backgroundColor: "gray"
      }
    })
  </script>
  <style>
    .ms-controller {
      display: none;
    }
  </style>
</head>

<body>
  <div>
    <div ms-controller="maincontainer">
      <div ms-for='(key,el) in @styleInfo'>
        <label>{{ key +':'+ el }}</label>
        <input type="text" ms-duplex="@styleInfo[key]">
        <!--不能ms-duplex="el",下面是使用ms-duplex="el"的效果,用来做对比-->
        <input type="text" ms-duplex="el">
      </div>
    </div>
  </div>
</body>

</html>

页面效果:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Avalon 学习系列(四)—— 循环遍历 的相关文章

  • 将 OoXml 插入单词抛出错误:未知

    我一直在尝试通过office js将OOXML插入到word文档的正文内容中insertOoXML 方法 我什至尝试过最简单的实现 认为我在尝试替换 XML 本身中的 fieldCodes 时做了一些不正确的事情 所有结果都是这样Error
  • 使用 vscode 调试器调试 next.js

    我已经使用安装了一个项目创建下一个应用程序 https github com segmentio create next app 我需要使用我的编辑器 vscode 调试服务器端渲染 所以我访问过vscode recipes 如何调试 ne
  • 主干视图 DOM 元素已删除

    我一直在阅读有关 Backbone js 僵尸 或内存泄漏 问题的信息 基本上 当您不再需要该元素时 您必须从 DOM 中解除绑定并删除该元素 以确保所有事件也被删除 现在 我有一个包含几个容器的单页应用程序 div div div div
  • jquery.find() 可以只选择直接子项吗?

    我应该向 jQuery find 提供什么参数来选择元素子元素而不选择其他元素 我不能用 gt 引导选择器 而用 将选择所有后代 而不仅仅是直接子代 我知道 jQuery children 但这是一个库 因此用户能够提供自己的选择器 并且我
  • Web 串行 API - 未捕获(承诺中)DOMException:无法打开串行端口/所需成员 baudRate 未定义

    下面的代码可以在我的 Xubuntu 机器上运行 但现在我在 Kubuntu 上 它不再工作了 它不会打开端口 Arduino IDE 工作正常 可以向开发板写入代码 并且我可以在 Chrome 中选择设备 Arduino Uno 但当我尝
  • 如何重置使用 JavaScript 更改的 CSS 属性?

    我的导航按钮的宽度从 100px 增加到 150px 当鼠标悬停在 nav li hover width 150px 但是使用 javascript 我已经做到了 无论选择哪个选项 宽度都将继续为 150px 当选择每个选项时 它会使其他选
  • 检查 JavaScript 字符串是否为 URL

    JavaScript 有没有办法检查字符串是否是 URL 正则表达式被排除在外 因为 URL 很可能是这样写的stackoverflow 也就是说它可能没有 com www or http 如果你想检查一个字符串是否是有效的 HTTP UR
  • 如何抑制窗口鼠标滚轮滚动...?

    我正在开发嵌入页面中的画布应用程序 我有它 因此您可以使用鼠标滚轮放大绘图 但不幸的是 这会滚动页面 因为它是文章的一部分 当我在 dom 元素上滚动鼠标滚轮时 是否可以阻止鼠标滚轮在窗口上滚动 附加鼠标滚轮 不是 Gecko DOMMou
  • 在requestAnimationFrame中使用clearRect不显示动画

    我正在尝试在 HTML5 画布上做一个简单的 javascript 动画 现在我的画布是分层的 这样当我收到鼠标事件时 背景层不会改变 但带有头像的顶层会移动 如果我使用 requestAnimationFrame 并且不清除屏幕 我会看到
  • Jquery/Javascript 上传和下载文件,无需后端

    是否可以在没有后端服务器的情况下在 JavaScript 函数中下载和上传文件 我需要导出和导入由 JavaScript 函数生成的 XML 我想创建按钮 保存 xml 来保存文件 但我不知道是否可行 另一方面 我希望将 XML 文件直接上
  • 使用 KnockoutJs 映射插件进行递归模板化

    我正在尝试使用以下方法在树上进行递归模板化ko映射 插入 http knockoutjs com documentation plugins mapping html 但我无法渲染它 除非我定义separate每个级别的模板 在以下情况下
  • 如何在react-native中获取Text组件的onPress值

    我是一名新的 React Native 开发人员 我想使用 onPress 获取 Text 组件的值并将其传递给函数
  • Firefox 书签探索未超过 Javascript 的第一级

    我已经编写了一些代码来探索我的 Firefox 书签 但我只获得了第一级书签 即我没有获得文件夹中的链接 e g 搜索引擎 雅虎网站 谷歌网站 在此示例中 我只能访问 Search engines 和 google com 不能访问 yah
  • 为 illustrator 导出脚本以保存为 web jpg

    任何人都可以帮我为 illustrator CC2017 编写一个脚本 将文件以 JPG 格式导出到网络 旧版 然后保存文件并关闭 我有 700 个文件 每个文件有 2 个画板 单击 文件 gt 导出 gt 另存为 Web 旧版 然后右键文
  • HTML 离线应用程序缓存,列出下载的文件

    作为我正在构建的离线 Web 应用程序的加载屏幕的一部分 使用缓存清单 http developer apple com library safari documentation iPhone Conceptual SafariJSData
  • FireFox 中的自动滚动

    我的应用程序是实时聊天 我有一个 Div 来包装消息 每条消息都是一个 div 所以 在几条消息之后 我的 DOM 看起来像这样 div div Message number two div div div div
  • 在 vue.js 中访问数组对象属性

    给定以下数组vue js packageMaps Object packageMap 0 Object Id 16 PackageType flag list ProductCode F BannerBase packageMap 1 Ob
  • 条件在反应本机生产中失败,但在开发中有效

    我创建了一个反应本机应用程序 我需要通过它进行比较 如果属实 就会执行死刑 问题是 该条件适用于 React Native 开发模式 而不适用于 React Native 生产版本 我使用 firebase 作为数据库 也使用 redux
  • 如何在 pg-promise 中设置模式

    我正在搜索的文档pg 承诺 https github com vitaly t pg promise特别是在创建客户端时 但我无法找到设置连接中使用的默认架构的选项 它始终使用public架构 我该如何设置 通常 为数据库或角色设置默认架构
  • fullCalendar 未显示正确的结束日期

    我正在看调试页面 http jsbin com wukofacaxu edit js outputFullCalendar 官方网站的 我想安排一个活动时间为 22 09 2015 至 30 09 2015 dd mm yyyy 但它只显示

随机推荐

  • Jsoniter简单的使用介绍

    2017 7 1日更新 前几天在公司做一个模块的时候想使用Jsoniter解析一个json字符串 结果发现 当字符串长度大于一定值的时候 就会抛错 查了写资料 无果 最后换成了gson 成功解析 之前一直在使用google的gson以解析j
  • Qt的MOC机制

    Qt的MOC机制 Qt扩展了C 使得开发者拥有很多方便使用的工具 如何使用Qt提供的特性呢 比如信号与槽 那就需要开发者在类中声明Q OBJECT宏 这样程序员就能使用Qt提供的功能了 为什么这样可以呢 先从C 文件的编译过程开始讲 一般C
  • QT从入门到实战x篇_32_实战篇:翻金币(创建项目;场景切换;设置背景图片;按钮控件封装;跳跃特效;QTimer::singleShot();引入数据类;QMap<>;翻金币特效;插入音效;打包)

    本篇将会根据前面讲解的关于Qt的相关内容进行一个实战项目 项目链接 翻金币案例 关于此项目比较好的博客地址如下 QT 翻金币项目 翻金币项目总结 1 项目简介 2 项目基本配置 2 1 创建项目 2 2 添加资源 3 主场景 3 1 设置游
  • Webpack实用工具之webpack-server

    Webpack实用工具之Webpack server 一 webpack server的原理简单解读 使用webpack server时 webpack server会为我们的当前的项目开启一个服务器 将其中的文件放入到该服务器中供我们进行
  • 字符串旋转(C#)

    字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部 请定义一个函数实现字符串左旋转操作的功能 比如 输入字符串 abcdefg 和数字2 该函数将返回左旋转两位得到的结果 cdefgab 来源 力扣 LeetCode 链接 ht
  • 使用java输出一组6位的随即数组

    可以使用 Java 的 Random 类来生成一组 6 位的随机数组 下面是一个示例代码 import java util Random public class Main public static void main String ar
  • C#使用操作符~按位取反

    int x 12345678 int y x 是按位取反操作符 string xStr Convert ToString x 2 PadLeft 32 0 将int数值 转换成二进制字符串 string yStr Convert ToStr
  • Angular嵌套路由

    嵌套路由 1 在app routing module ts文件中配置路由 const routes Routes path home component HomeComponent children path tabbar componen
  • STM32学习笔记(6):PWM控制

    PWM控制 PWM方波 脉冲宽度调制 PWM 是英文 Pulse Width Modulation 的缩写 简称脉宽调制 是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术 广泛应用在从测量 通信到功率控制与变换的许多领域中
  • Gradle使用Maven仓库

    在build gradle文件中 修改repositories如下 repositories mavenLocal mavenCentral 这样的话 就会优先从maven的仓库中查找所需的jar包 我的maven配置本地仓库为D repo
  • github哪些协议能商用_版权->GitHub代码版权你关心过吗?

    作为一个无版权习惯的码农 终于遇到一个大坑 堵住了自己一条光明大路 那就是 版权 大部分程序员遵从的原则就是不重复造轮子 作为一个非著名相声演员 哦不 非大牛程序员 咳咳 把这句至理名言发挥的更是淋漓尽致 只要有需求 想好大致架构思路和逻辑
  • 数据组合利器:从入门到精通Python中的zip()函数应用

    介绍 zip 函数是Python内置的一个非常有用的函数 它可以将多个可迭代对象打包成一个元组构成的新的可迭代对象 本文将深入探讨zip 函数的用法 从入门到精通 目录 zip 函数的基本用法 使用zip 函数合并列表 使用zip 函数进行
  • Unity中的UGUI源码解析之事件系统(7)-输入模块(上)

    Unity中的UGUI源码解析之事件系统 7 输入模块 上 从今天开始 我们进入事件系统的的最后一部分 输入模块 InputModules 输入模块是事件系统的核心 是真正使用检测和调用回调的地方 输入模块主要有几个角色 分别为 BaseI
  • 深入了解jQuery的children方法

    jQuery是一种简化HTML文档遍历和操作 事件处理 动画和AJAX等常见任务的JavaScript库 而children 方法是其中之一 它是一个非常实用的方法 可以让我们在DOM树中轻松找到特定元素的子元素 并进行进一步操作 在本文中
  • Nginx配置参数解释

    目录 worker processes work cpu affinity worker rlimit nofile events模块 1 use method 2 worker connections 3 multi accept htt
  • grep正则表达式例子

    grep支持的正则表达式有很多 这里尽量全面地列出各种正则表达式及其说明 行首匹配 用于匹配字符串的开始 行尾匹配 用于匹配字符串的结束 匹配除换行符外的任意一个字符 匹配零个或多个前面的字符 匹配一个或多个前面的字符 匹配零个或一个前面的
  • 2020三校生英语计算机试卷,2020江西省“三校生”对口升学考试考试说明英语科目最新考试英语复习教材考前模拟试卷课本教材资料试题...

    三 题型示例 第 I 卷 选择题 共 125 分 单项选择题 共 25 小题 每小题 1 分 满分 25 分 从 A B C D 中 选出可以填入空白处的最佳选项 并在答题卡上将该项 填黑 1 Thank you very much Mr
  • Flink SQL CDC 的实时增量同步数据

    问题导读 1 怎样实现基于 Flink SQL CDC 的数据同步方案 2 CDC 是否需要保证顺序化消费 3 GROUP BY 结果如何写到 Kafka 传统的数据同步方案与 Flink SQL CDC 解决方案业务系统经常会遇到需要更新
  • 程序猿 C#常规面试题

    1 NET框架是什么 NET框架是Microsoft的软件开发框架 它提供了一个受控的编程环境 可以在基于Windows的操作系统上开发 安装和执行软件 2 NET和C 的区别 NET是一种框架 CLR公共语言运行库是 NET FrameW
  • Avalon 学习系列(四)—— 循环遍历

    Avalon2 的 ms for 绑定集齐了 ms repeat ms each ms with 的所有功能 更加好用 性能也提升了很多 Avalon 不需要 vue 或 react 那样使用 key 属性来提高性能 内部已经帮你搞定了 循