Angularjs 动态指令

2023-12-10

注意:我对 angularjs 很陌生

问题的最佳解决方案/实践是什么: 我有一个数组或键入的值,对于每种类型应该有不同的输入(模板和输入验证)?

例如。并简化

var vars = [
    {
        type: 'int',
        value: 42,
        min: 0,
        max: 42
    },
    {
        type: 'text',
        value: 'foobar'
    },
]

对于“int”模板将是

<input type="range" max="{{max}}" min="{{min}}" value="{{value}}" />

和“文本”

<textarea>{{value}}</textarea>

在实际情况下,会有很多带有奇怪界面的输入


An ng-switch (docs)可以在这里帮助您;像这样的东西:

<div ng-repeat="item in items">
  <div ng-switch on="item.type">
    <div ng-switch-when="int">
      <input type="range" max="{{item.max}}" min="{{item.min}}"
        ng-model="item.value" />
    </div>

    <div ng-switch-when="text">
      <textarea ng-model="item.value"></textarea>
    </div>
  </div>
</div>

[Update]

既然您提到要动态包含基于类型的模板,请看一下ng-include (docs) 它采用 Angular 表达式来计算 URL:

<div ng-repeat="item in items">
  <div ng-include="'input-' + item.type + '-template.htm'"></div>
</div>

如果您不喜欢内联字符串连接,可以使用控制器方法来生成 URL:

<div ng-repeat="item in items">
  <div ng-include="templatePathForItem(item)"></div>
</div>

上的例子ngInclude文档页面非常好。

请注意,包含的模板将被赋予当前范围的原型子范围。

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

Angularjs 动态指令 的相关文章

随机推荐

  • 这些文件是什么,我在使用 gitmerge 工具解决冲突时得到的?

    如何gitmergetool作品 我在进行 git merge 时遇到了冲突 现在我想摆脱这些合并冲突 我正在浏览以获取一些有关如何执行此操作的信息 并且有人建议使用 git mergetool 我从未使用过 git merge 工具 但是
  • 重新打开游戏时如何检查时间是否已过?

    当 tebs 变量在游戏中获得一些值时 协程就会运行 当它起作用时 它会设置timeScale归零并等待一段时间 然后游戏继续继续 问题是我想在游戏关闭和重新打开时检查实时 本地时间 并比较它们以检查时间是否过去 因此协程继续运行或结束 I
  • 派生类对象是否包含基类对象?

    请考虑下面的示例代码 include
  • 标准错误?它是什么?它的常见用途有哪些?

    对句柄 STDERR 的工作原理感到好奇吗 让我们简单地说一下批处理文件以保持简单和集中 我知道许多编程语言都接受 STDERR 所以我不知道是否可能用途有所不同 或者所有编程语言是否有一个共同的功能 如果有人可以提供一些您所见过的常见用法
  • 当转发到 JSP 时,如何检测 Java Servlet 中的 URL?

    我有一个看起来像这样的 servlet public class ExampleServlet extends HttpServlet public void doGet HttpServletRequest request HttpSer
  • 如何从内容处置中获取文件名

    我下载了一个文件作为ajax的响应 如何获取文件名和文件类型content disposition并显示它的缩略图 我得到了很多搜索结果 但找不到正确的方法 download btn click function var uiid this
  • 如何在 C# 中通过 TCP 连接发送整数数组

    我在 Windows 应用程序中在两台计算机之间建立了 TCP 连接 用于来回发送和接收数据 我发送的消息是一组转换为字符串并用 分隔的整数 因此 为了发送我要使用的数据 if dataSend Length gt 0 m writer W
  • 实现容器视图的问题

    我正在尝试遵循查看 iOS 控制器编程指南在我的应用程序中实现容器视图 目前 我只是想加载初始的第一个视图 但第一个控制器中包含的标签没有显示 最后 我希望能够通过使用分段控件来控制容器中显示哪个视图 任何帮助将不胜感激 我的故事板 视图控
  • Windows Mobile 5 SDK 按钮控制

    我是一名相当新手的程序员 正在开发我的第一个 Windows Mobile 应用程序 我发现我的程序没有可用的按钮控件 我以前从未创建过自定义控件 并且我知道这是为我的应用程序获取按钮的唯一方法 这是我的客户的要求 我想知道是否有人可以给我
  • 如何指定跨域策略文件以允许 Flash 从 RTMP (Wowza) 视频流中抓取位图?

    我正在尝试获取在客户端上播放的 Wowza 视频流的位图 快照 如下所示 var bitmapData BitmapData new BitmapData view videoPlayerComponent width view video
  • 无法将多行字符串设置为环境变量

    如何在 VSTS powershell 任务上将多行字符串设置为环境变量 以下代码仅保存字符串的第一行 string xmlstring Get Content Encoding UTF8 Path System DefaultWorkin
  • 非根位置部署的绝对路径

    我通常使用以下方式引用我网站上的任何资产绝对路径这样我就不必担心资产相对于当前文件的位置 img src images flag png img src images flag png 但是 这次我需要将站点托管在非根位置 例如http m
  • 适配器无法与数据映射器一起使用

    我有以下代码 require sinatra require datamapper DataMapper setup default postgres localhost mydb 但是 当我尝试运行它时 我得到 LoadError 没有要
  • WebKit“拒绝设置不安全标头‘内容长度’”

    我正在尝试实现简单的 xhr 抽象 并且在尝试设置 POST 标头时收到此警告 我认为这可能与在单独的 js 文件中设置标头有关 因为当我将它们设置在
  • 设置 BigDecimal 的特定精度

    我有一个XSD这要求我使用 BigDecimal 来表示纬度 经度 我目前将纬度 经度作为双精度数 并将它们转换为 BigDecimal 但我只需要使用大约 12 位精度 我一直不知道如何设置 谁能帮我这个 您可以使用设置比例 e g do
  • 在 Python 中解析用户提供的数学公式的安全方法

    Python 有数学表达式解析器 求值器吗 我不是第一个问这个问题的人 但答案通常指向eval 例如 可以这样做 gt gt gt safe list math acos asin atan atan2 ceil cos cosh degr
  • 让内部指令在外部指令之前运行

    我有以下 html div ul class tabs li tab li ul div class tab content div tabContent div div div 我遇到的问题是 tabs 指令在 ng repeat 指令之
  • 非自相交多边形创建算法的有效性

    作为扩展和部分答案我的话题我写了一个简单的算法 给定一组点 具有 xy 坐标 可以形成一个非自相交的多边形 主张 给定具有不同坐标的任意点集 始终可以构造规则或不规则 非自相交的多边形 算法 假设有一个包含所有顶点的集合V 1 按x坐标对V
  • 如何实现Delphi的ToolsAPI的IOTAProjectCompileNotifier?

    我正在使用 Delphi XE IDE 我创建了一个通知程序来实现 IOTACompileNotifier 在IDE中安装专家后 当我编译我的项目时 代码运行良好 通知程序正在为 ProjectCompileStarted 工作 第二次编译
  • Angularjs 动态指令

    注意 我对 angularjs 很陌生 问题的最佳解决方案 实践是什么 我有一个数组或键入的值 对于每种类型应该有不同的输入 模板和输入验证 例如 并简化 var vars type int value 42 min 0 max 42 ty