Angular.js 中的单选按钮和文本字段

2023-11-30

使用 AngularJS,我想创建一个带有单选按钮的选项列表,最后一个按钮有一个标记为“其他”的空文本字段,用于输入不在列表中的选项。这是我的想法的演示在 CodePen 中引导。由于 Stack Overflow 坚持在此消息中包含 CodePen 代码,因此如下:

js:

angular.module('choices', [])
  .controller("MainCtrl", ['$scope', function($scope) {

    $scope.color = '';

    $scope.colors = [
      "Red",
      "Green",
      "Blue",
      "Other"
     ];

    $scope.changeColor = function(){
      $scope.color = "Red"
    };

}]);

html:

<html>
<head>
<body ng-app="choices" ng-controller="MainCtrl">
  <div ng-repeat="color in colors">
     <input type="radio" ng-model="$parent.color" ng-value="color" id="{{color}}" name="color">
       <label>
         {{color}}
       </label>
      <input type="text" ng-model="$parent.color" ng-show="color=='Other'">
  </div>
  <p></p>
  The chosen color is <strong>{{color}}</strong>
  <p></p>
  <button ng-click="changeColor()">Change color</button>
</body>
</html>

这是我想要这个演示应用程序执行的操作:

  • 当我选择除以下之外的任何选项时Other,文本字段应保留空白;
  • 如果我将光标放在文本字段中,该选项Other应选择
  • 一旦我开始在文本字段中输入内容,该选项Other应保持选中状态
  • 如果我更改注册选项的模型(在演示应用程序中通过单击Change color按钮),应选择相应的单选按钮。

我通过使用三种模型实现了大部分功能(一种用于颜色,一种用于跟踪单选按钮,一种用于Other场)和三个观察者,但是生成的应用程序看起来很脆弱并且无法通过一些测试。您能否建议一种更好的方法,使用尽可能少的模型和观察者在 Angular 中创建这样的选择器?

(我的问题有点类似于this所以问题,但我希望足够不同,不被认为是重复的。)


为其他文本添加单独的范围属性:

$scope.other = '';

Add a colorChanged()颜色改变时将调用的方法。如果颜色不是“其他”,这会将其他文本设置为空:

$scope.colorChanged = function () {
    if ($scope.color != 'Other') {
        $scope.other = '';
    }
};

这也需要从调用changeColor()。我最终改变了changeColor允许传入颜色。否则默认为红色:

$scope.changeColor = function(color){
    $scope.color = color || "Red";
    $scope.colorChanged();
};

Add ng-change="colorChanged()"到单选按钮:

<input type="radio" ng-model="$parent.color" ng-value="color" id="{{color}}" name="color" ng-change="colorChanged()">

更改要使用的文本框other作为模型。使用 ng-focus 检测文本框何时获得焦点,然后将颜色设置为“其他”。执行此操作将选择单选按钮。

<input type="text" ng-model="$parent.other" ng-show="color=='Other'" ng-focus="$parent.color = 'Other'"/>

更新颜色的显示以显示其他文本:

The chosen color is <strong>{{color}}<span ng-if="color === 'Other' && other != ''"> - {{other}}</span></strong>

Plunkr

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

Angular.js 中的单选按钮和文本字段 的相关文章

  • AngularJS 复制到剪贴板

    有没有办法制作一个具有复制功能的复制按钮 该按钮将复制模态的所有内容 然后您可以将其粘贴到记事本中 我需要这个功能Controller 由于要复制的文本是动态的 这是我基于中的代码的简单函数剪贴板 https github com nico
  • 如何使用 AngularJS 设置页面标题[重复]

    这个问题在这里已经有答案了 我使用以下代码来显示每个 AngularJS 应用程序模板的页面标题 但每当我尝试输入无效的 URL 来测试 otherwise 时 我都会收到以下错误 TypeError Cannot read propert
  • 使用 ngSanitize 在 HTML 中注入“ng-click”

    我正在使用 Angular 进行本地化 但我遇到了最后一件事 我有这个 json blob key need to login value You need to a log in a to add an event description
  • 告诉 Angular Js 忽略特定路由

    我已经在 Angular 中设置了路由 一切正常 locationProvider html5Mode true routeProvider when templateUrl Home Index when User templateUrl
  • ES6 Promise 不更新 AngularJS DOM [重复]

    这个问题在这里已经有答案了 我无法理解角度分量范围 如果我做类似的事情 function myComponent this data Hello World let myModule angular module myModule myMo
  • 将 jquery Ui.ressized() 与 AngularJs 一起使用

    我的模板之一中有一个 DOM 元素 我想使用 jqueryUi 调整其大小 总而言之 我有一个 div 我的模板中名为 test 的元素 除此之外 我还尝试添加脚本来实际在多个位置调整大小 但我已经完全扭转了局面 我一度认为指令可能是正确的
  • Angular ng-repeat 导致闪烁

    我正在使用以下代码显示缩略图列表 div class channel img class channel img div 在控制器中 我有一个 ajax 请求 它可以获取新的缩略图 因此 Angular 会更新图像 但会导致闪烁 有没有办法
  • 不使用 data-* 前缀的自定义 HTML 属性是否有效? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Angular UI Grid - 将图像导出为 pdf

    我想将图像添加到 pdf 的标题中 我正在尝试添加已转换为 base64 的图像以导出 Pdf 标题 scope gmGrid exporterPdfHeader margin 30 5 30 15 table widths body MC
  • Angular 资源测试:$httpBackend.flush() 导致意外请求

    我想测试 angularjs 资源 use strict AddressService provides functionality to use address resource in easy way This is an exampl
  • 量角器中的“$”选择器

    我见过很多这样的例子 selector 我也在用这个 那么这又是什么 变量确实如此 这是我从量角器得到的docs https angular github io protractor api view ElementFinder proto
  • 从不同的控制器修改 $rootscope 属性

    在我的 rootscope 中我有一个visible控制 div 可见性的属性 app run function rootScope rootScope visible false HTML 示例 section section
  • 并行运行 Angular 和 AngularJS 框架

    我找到了描述如何将 Angular 2 组件集成到 AngularJS 中的资源 但所有这些都涉及像 Angular 项目一样设置 AngularJS 项目 需要 TypeScript 的转译器 需要 ES6 需要 import 语句 我想
  • Angularjs UI 模态表单

    我曾经使用引导模式有一个登录对话框 scope loginDialog backdrop true keyboard true windowClass modal loginDialog backdropClick true templat
  • 如何测试 AngularJS 指令

    我正在开发一个将使用 AngularJS 的 Rails 3 2 应用程序 我可以让 Angular 做我需要的事情 但我很难弄清楚如何测试我正在做的事情 我正在使用guard jasmine 使用 PhantomJS 运行 Jasmine
  • 识别 ASP.NET MVC 代码中的 Angular js AJAX 调用

    我正在使用 ASP NET MVC 和 AngularJS 开发一个示例应用程序 在服务器端代码中 我编写了一个Action过滤器属性 其中我需要检查请求是普通请求 浏览器 还是AJAX请求 public override void OnA
  • Angular 1 到 Angular 5(导入嵌套组件)

    Before 角度1 5 用户界面路由器 Now 角5 0 如何在像 Angular 1 5 这样的组件父组件中导入子组件 我从 Angular 5 开始制作教程 Heroes 但没有解释这个过渡 所有组件都导入到 app modole t
  • 为什么使用 Angular 的 $log 而不是 console.log?

    我知道这是使用角度的最佳实践 log代替console log 但是 我找不到解释原因的良好文档 开发人员为什么要使用 log log首先检查浏览器是否支持console log 例如 IE 8 就没有 这可以防止在 IE 8 上显示错误
  • Typescript:$rootScope 上不存在属性(Angularjs)

    在 Typescript 中向根作用域添加值时出现错误 class TestClass this rootScope ng IRootScopeService constructor rootScope this rootScope roo
  • 路由和干净路径(无主题标签)在 angularJS 中不起作用

    伙计们 这让我发疯了 我为此奋斗了几个小时 却找不到解决方案 我知道为了从 URL 路径中清除主题标签 我需要使用 locationProvider html5Mode true 但由于某种原因 这对我来说效果不佳 我使用 tomcat 7

随机推荐

  • 在jspdf中添加自定义字体

    我想在 jsPDF 中使用自定义字体 例如 Comic Sans MS 或 Calibri 字体 我发现了类似的问题here 但我的不工作 我已经添加了最新的jspdf 我的代码如下 var doc new jsPDF p mm a4 do
  • swt表改变选择项颜色

    我正在使用一个标准的 swt 表 您可能知道 默认情况下 选择一个项目时颜色为蓝色 Windows 标准 当选择处于非活动状态时 它会变成浅灰色 我想覆盖这两种颜色 我在整个网络上进行了搜索 但只能找到一些非常旧的代码 这些代码似乎不再适用
  • PrototypeJS:如何选择动态创建的元素?

    该网站使用 Prototype JS 库 页面加载后 它立即执行 Ajax 请求 该请求会拉出并显示页面的更多元素 我需要能够选择那些动态创建的元素并将它们隐藏 hide method 我尝试使用选择并隐藏它们document observ
  • 从 XML 反序列化为列表对象

    我正在执行将 XML 文件转换为列表对象的程序 我已成功完成从 List 到 XML 的序列化 但是在进行反序列化时遇到问题 请任何人告诉我我在这段代码中做错了什么 这是我的 XML 代码
  • 设计可以标记多个数据库表的标记系统

    我希望允许用户标记项目 以便他们可以使用标签搜索它们 干净地实现这一目标的最佳方法是什么 到目前为止 我提出的解决方案仅涉及向我当前的数据库系统添加两个额外的表
  • 绘制 SEM 模型中与 R 中观察到的变量的交互效应

    我正在估计一个已观察到变量的 SEM 模型 我正在使用 SEM 来使用 FIML 处理缺失数据 我的模型有一个交互项来测试适度性 这是一个说明问题的玩具示例 library lavaan library car library dplyr
  • Cakephp生成xml错误-空格

    我正在尝试在 CakePHP 中生成动态 xml 文档以输出到浏览器 这是我的控制器代码 Configure write debug 0 this gt layout null header Content type text xml ec
  • 使用 itextpdf 时,横向和纵向 PDF 的页面大小始终相同

    我有一个 PDFReader 其中包含一些横向模式的页面和其他纵向模式的页面 我需要区分它们以进行一些处理 但是 如果我调用 getOrientation 或 getPageSize 则该值始终相同 页面大小为 595 方向为 0 为什么横
  • CSS 中的装饰艺术风格边框

    我希望使用纯 CSS 来实现这种边框效果 我的偏好是在不添加额外的 div 元素的情况下实现它 任何建议 将不胜感激 编辑 固定图像描述 你可以像下面这样做 box width 150px height 200px border 15px
  • Android:从网页获取 HTML 作为字符串,HttpClient 不起作用

    我正在编写一个使用 HttpClient 连接到网页的应用程序 目的是能够将网页的一些 HTML 复制到字符串中 我尝试使用 HttpClient 连接来完成此任务 这是我使用的代码 public void getText final Te
  • 在不同 DPI 下使用 GetWindowRect 的坐标误差

    我想捕获 MFC 程序中组件的坐标 现在我可以通过使用完美地完成这个GetWindowRect 但是 当我将 Windows dpi 设置为 150 120 dpi 时 我得到的坐标不同GetWindowRect 因此 我研究了一些将新坐标
  • Ruby OpenSSL 嵌套 asn1 错误

    我已经尝试过针对此处发布的几个问题的建议 但无济于事 我有以下文件 注意 我即时生成了这些文件 它们是一次性密钥 证书文件 BEGIN CERTIFICATE MIIE jCCA KgAwIBAgIJAMLMeL HH75vMA0GCSqG
  • 将 smarty 数组转换为 javascript 数组

    我有一个聪明的数组 promoFormData Smarty Variable Object 3 gt value Array 1 deliveryDates gt Array 3 0 gt Array 2 startDate gt 201
  • 画布 toDataUrl 的跨源访问失败

    我想创建一个小页面 人们可以在其中创建万花筒 我使用可用的脚本并添加了一些图像浏览和保存功能 现在 我在将生成的画布数据保存为图像时遇到了一个奇怪的问题 火狐控制台说 SecurityError 操作不安全 调用失败 Canvas2Imag
  • 在服务类中显示 ProgressDialog

    我正在使用服务通过 AsyncTask 连接到网络 我想显示一个 ProgressDialog 直到应用程序连接到网络 但我该怎么做呢 我的服务如下所示 package de bertrandt bertrandtknx import tu
  • Paypal 表单破坏了我的 ASP.NET webforms 布局 -> 如何解决?

    I am a student who is doing up a simple website in asp net My problem is I wish to integrate Paypal on one of the pages
  • 用于密码验证的正则表达式 Java

    我正在创建一个用于密码验证的正则表达式 以在 Java 应用程序中用作配置参数 正则表达式是 8 0 9 a z A Z 密码策略是 至少 8 个字符 至少包含一位数字 至少包含 1 个下位字母字符和 1 个上位字母字符 一组特殊字符中至少
  • SQL 查找最受欢迎的类别

    我的数据库 MySQL 中有 3 个表 categories name string items name string category id int votes value int item id int created at date
  • 如何在 r 中编写函数来对记录进行计算?

    在 C 中 我习惯了数据集和当前记录的概念 对我来说 根据当前记录的条件编写一个复杂的计算价格函数是很容易的 我无法理解如何在 r 中执行此操作 我尝试了以下方法 train lt read csv Train csv df lt as d
  • Angular.js 中的单选按钮和文本字段

    使用 AngularJS 我想创建一个带有单选按钮的选项列表 最后一个按钮有一个标记为 其他 的空文本字段 用于输入不在列表中的选项 这是我的想法的演示在 CodePen 中引导 由于 Stack Overflow 坚持在此消息中包含 Co