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 学习系列(四)—— 循环遍历 的相关文章

  • TinyMCE 输入以相反顺序写入

    我面临这个问题 每当我输入 TinyMCE 时 我的光标会自动向左移动 最终从右向左写入文本 它只发生在我部署的应用程序中 但如果我在我的机器上本地运行代码 同样可以正常工作 发生这种情况的任何可能原因 相同的屏幕截图 https i st
  • 从 HTML 表单发送数据到 Node.js 服务器

    我正在学习 Node js 我的服务器中有这个 var http require http var url require url http createServer function request response response w
  • 如何使用nodeJS SFTP客户端列出所有子目录?

    有趣的节点 JS ssh2 sftp client 我想列出给定路径中的所有目录及其子目录 let sftp new ssh2SftpClient console log sftp sftp connect host xx xxx xxx
  • angularjs 自定义过滤器检查数据数组内的值

    我有两个过滤器 它们根据数据中的队列键过滤数据 这是我的代码 var app angular module app app controller mainController function scope Data object scope
  • 使用 JavaScript 填写 PDF 表单

    这就是我所拥有的 用户填写很长的 html 表单 用户获取下载不同 pdf 的链接 这是可填写的表格 链接是使用 javascript 生成的 用户单击链接 生成 url 使用用户之前提交的数据 在表单中处理数据并完成字段 这是在表单内使用
  • 使用 word_number 值对 javascript 数组进行排序

    如何对数组进行排序 var arr new Array word 12 word 59 word 17 这样我得到 word 12 word 17 word 59 Thanks 您需要编写一个排序方法 您可以编写任何您喜欢的方法 该方法在
  • TypeScript 中类和命名空间的区别

    到底有什么区别classes and namespaces在打字稿中 我知道 如果您创建一个带有静态方法的类 您可以在不实例化该类的情况下访问它们 这正是我猜想的命名空间的要点之一 我还知道你可以创建多个同名的命名空间 并且它们的方法在编译
  • Angular 7 Guard 重定向仅适用于双击

    问题是我已经实现了一个 Guard 旨在处理特定的目录 如果当前用户名的角色等于 2 它应该返回 true 如果没有 那么它不应该重定向 这是我的 app routing module ts 文件 问题出在 userlist 路径中 我们是
  • Javascript 根据字段值任意排序数组

    所以我有一个对象数组 如下所示 var myArray priority low priority critical priority high 我需要以这种方式排序 1 关键 2 高和3 低 如何才能做到这一点 我建议使用一个对象来存储排
  • contenteditable 在 safari 中不起作用,但在 chrome 中起作用

    我有一个奇怪的问题 这在 chrome 中按预期工作 但在 safari 中它只会发光 但不会对按键输入做出反应 这是触发文本版本的方法 var namebloc event currentTarget find column filena
  • Javascript 访问 Disqus 评论文本框?

    我正在开发一个浏览器扩展 它应该允许我访问文本框中的评论 帖子 现在很多网站都使用 Disqus 作为评论方式 但在输入文本时我无法找到访问 Disqus 评论框的方法 Disqus API 也没有透露太多信息 有人知道访问它的方法吗 解决
  • Django 模板变量从 {% for %} 循环到 Javascript

    这是一个迭代记录的 Django 模板 每条记录都包含一个由 JS 函数填充的 div 为了让 JS 知道要做什么 它需要从每次 for 循环迭代中获取一个变量并使用它 我不知道具体如何实现这一目标或是否可能 我不知道 也许记录在单独的 J
  • 为什么在 vue 组件上输入另一个输入时,输入文件的值丢失了?

    我有两个组件 我的第一个组件 父组件 如下所示
  • 传单 - 导入 Geojson - Angular 6

    我尝试将 GeoJson 文件导入到 Angular 的应用程序 6 中的传单中 通过这个解决方案 我的 geojson 是在 leafletmap 中绘制的 但我有这个错误 我无法构建我的应用程序 有人知道一种解决方案吗 错误 TS234
  • 自动调整元素 (div) 大小以适合水平内容

    我尝试谷歌搜索 但没有得到太多结果 我正在构建一个水平轮播 它在浮动的 LI 中显示图像 我想解决的问题是 每次我向轮播添加缩略图 我是延迟加载 时 我都需要重新计算轮播的宽度 以便所有浮动缩略图很好地并排排列 其一 我宁愿不必在 JS 中
  • 如何让无限滚动发挥作用?

    我正在尝试让这个无限加载脚本在我的项目中工作 这是我的 HTML div div div class pagina div div class pagina div div class pagina div div class pagina
  • 使用重复模式捕获正则表达式

    我试图捕获字符串的所有部分 但我似乎无法正确处理 该字符串具有以下结构 1 22 33 中间有运算符的数字 可以有任意数量的术语 我想要的是 1 22 33 1 22 33 但我得到 1 22 33 22 33 我尝试过各种正则表达式 这是
  • 在64位环境中加载32位进程

    我有以下几个问题 CHM 是 编译的 HTML 文件 我的 CHM 文件有一个启动 32 位应用程序的链接 CHM 文件是用 Javascript 编码的 这在 32 位操作系统环境中运行良好 但这在 64 位操作系统环境中不起作用 原因是
  • 相当于 JavaScript 中 Ruby 的each_cons

    许多语言都曾提出过这个问题 但 javascript 却没有 Ruby 有方法Enumerable each cons https devdocs io ruby 2 5 enumerable method i each cons看起来像这
  • 通过jquery ajax()和serialize()提交html表单

    我想通过 jquery ajax 提交此表单 这是我所做的 但它不起作用 即表单正在提交并刷新页面 但我没有看到响应 即在同一页面上打印数组 HTML

随机推荐

  • 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 属性来提高性能 内部已经帮你搞定了 循