AngularJS实现动态添加Option的方法


Posted in Javascript onMay 17, 2017

本文实例讲述了AngularJS实现动态添加Option的方法。分享给大家供大家参考,具体如下:

项目中后台管理设置,前台下拉动态添加option

<!DOCTYPE html>
<html lang="zh-CN">
 <head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="bootstrap.min.css" rel="external nofollow" >
  <script src="jQuery.min.js"></script>
  <script src="angular.js"></script>
  <script src="angular-animate.js"></script>
  <script src="bootstrap.min.js"></script>
  <script type="text/JavaScript">
    var app = angular.module('myapp', []);
    app.controller('DemoCtrl', function ($scope) {
      $scope.optionContainer = [];
      var realOptions = [];
      var randomCode = function() {
        var chars = "abcdefghijkmnopqrstuvwxyzABCDEFGHJKMNOPQRSTUVWXYZ1234567890";
        var randomChars = "";
        for (var i = 0; i < 10; i++) {
          var index = Math.floor(Math.random() * chars.length);
          randomChars = randomChars + chars.charAt(i);
        }
        return randomChars;
      }
      var getIndex = function(array, id) {
        var tmpItem = {};
        angular.forEach(array, function(item) {
          if (item.id == id) {
            tmpItem = item;
          }
        });
        return array.indexOf(tmpItem);
      }
      $scope.add = function() {
        var optionIndex = randomCode();
        $scope.optionContainer.push({
         id : optionIndex,
         readOnly : false,
         content : '',
         showConfirm : true
        })
        console.log($scope.optionContainer)
      }
      $scope.confirm = function(content, id) {
        if (content == '') {
          return;
        }
        var flag = false;
        angular.forEach(realOptions, function(item) {
          if (item == content) {
            flag = true;
          }
        });
        if (flag) {
          console.log('already exist!');
          return;
        }
        var tmpIdIndex = getIndex($scope.optionContainer, id);
        realOptions.push(content);
        $scope.optionContainer[tmpIdIndex].showConfirm = false;
        $scope.optionContainer[tmpIdIndex].readOnly = true;
      }
      $scope.deleteFunc = function(id) {
        var tmpIdIndex = getIndex($scope.optionContainer, id);
        if ($scope.optionContainer[tmpIdIndex].showConfirm == false) {
          tmpIndex = realOptions.indexOf($scope.optionContainer[tmpIdIndex].content);
          realOptions.splice(tmpIndex, 1);
        }
        $scope.optionContainer.splice(tmpIdIndex, 1);
      }
    });
  </script>
 </head>
 <body ng-app="myapp">
  <div ng-controller="DemoCtrl">
    <div>
      <div class="Container">
       <h1>create options</h1>
      </div>
      <div>
        <div>
          <table class="table table-striped table-hover">
            <thead>
              <tr>
                <th>option</th>
              </tr>
            </thead>
            <tbody>
             <tr ng-repeat="item in optionContainer" class="row">
               <td class="col-md-8" style="width:100%;">
               <input type="text" ng-model="item.content" ng-readonly="item.readOnly"/></td>
               <td class="col-md-2">
                <button type="button" class="btn btn-success btn-xs" ng-click="confirm(item.content, item.id)" ng-show="item.showConfirm">Confirm
                </button>
               </td>
               <td class="col-md-2">
                <button type="button" class="btn btn-success btn-xs" ng-click="deleteFunc(item.id)">Delete
                </button>
               </td>
             </tr>
            </tbody>
          </table>
        </div>
        <a class="btn btn-success btn-xs" ng-click="add()">Add</a>
      </div>
    </div>
  </div>
 </body>
</html>

运行效果图如下:

AngularJS实现动态添加Option的方法

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
12个非常有创意的JavaScript小游戏
Mar 18 Javascript
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
Jan 15 Javascript
jQuery教程 $()包装函数来实现数组元素分页效果
Aug 13 Javascript
js格式化时间小结
Nov 03 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
Apr 06 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
Jul 27 Javascript
基于bootstrap3和jquery的分页插件
Jul 31 Javascript
jQuery实现的事件绑定功能基本示例
Oct 11 jQuery
使用命令行工具npm新创建一个vue项目的方法
Dec 27 Javascript
jQuery扩展方法实现Form表单与Json互相转换的实例代码
Sep 05 jQuery
详解Vue.js中引入图片路径的几种方式
Jun 17 Javascript
详解javascript中var与ES6规范中let、const区别与用法
Jan 11 Javascript
AngularJS+bootstrap实现动态选择商品功能示例
May 17 #Javascript
Vue声明式渲染详解
May 17 #Javascript
node.js调用Chrome浏览器打开链接地址的方法
May 17 #Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
May 17 #Javascript
AngularJS实现的回到顶部指令功能实例
May 17 #Javascript
bootstrap模态框示例代码分享
May 17 #Javascript
ES6入门教程之let和const命令详解
May 17 #Javascript
You might like
可以在线执行PHP代码包装修正版
2008/03/15 PHP
关于初学PHP时的知识积累总结
2013/06/07 PHP
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
php分页查询mysql结果的base64处理方法示例
2017/05/18 PHP
php实现的二分查找算法示例
2017/06/20 PHP
PHP设计模式之建造者模式定义与用法简单示例
2018/08/13 PHP
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
javascript数组操作方法小结和3个属性详细介绍
2014/07/05 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
2014/12/14 Javascript
jQuery判断一个元素是否可见的方法
2015/06/05 Javascript
angular2 ng build部署后base文件路径问题详细解答
2017/07/15 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
Vue项目总结之webpack常规打包优化方案
2019/06/06 Javascript
[01:31]完美与DOTA2历程
2014/07/31 DOTA
numpy返回array中元素的index方法
2018/06/27 Python
Python实用技巧之利用元组代替字典并为元组元素命名
2018/07/11 Python
pycharm debug功能实现跳到循环末尾的方法
2018/11/29 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
Python数据正态性检验实现过程
2020/04/18 Python
Python实现一个简单的毕业生信息管理系统的示例代码
2020/06/08 Python
一篇.NET面试题
2014/09/29 面试题
冰淇淋店创业计划书范文
2013/12/27 职场文书
校园达人秀策划书
2014/01/12 职场文书
关于运动会的稿件
2014/02/02 职场文书
教师年度考核评语
2014/04/28 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
2014年个人教学工作总结
2014/12/09 职场文书
2015年个人审计工作总结
2015/04/07 职场文书
圣诞晚会主持词
2015/07/01 职场文书
《葡萄沟》教学反思
2016/02/23 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
送给客户微信问候语!
2019/07/04 职场文书
Nginx反向代理、重定向
2022/04/13 Servers
ubuntu下常用apt命令介绍
2022/06/05 Servers