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 相关文章推荐
『jQuery』名称冲突使用noConflict方法解决
Apr 22 Javascript
使用javascript创建快捷方式的简单实例
Aug 09 Javascript
jQuery+css实现百度百科的页面导航效果
Dec 16 Javascript
简介JavaScript中的sub()方法的使用
Jun 08 Javascript
js+css实现文字散开重组动画特效代码分享
Aug 21 Javascript
weebox弹出窗口不居中显示的解决方法
Nov 27 Javascript
实例讲解Vue.js中router传参
Apr 22 Javascript
解决vue 项目引入字体图标报错、不显示等问题
Sep 01 Javascript
vue和better-scroll实现列表左右联动效果详解
Apr 29 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
Jan 07 Javascript
javascript 数组精简技巧小结
Feb 26 Javascript
vue组件中节流函数的失效的原因和解决方法
Dec 02 Vue.js
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中的错误处理、异常处理机制分析
2012/05/07 PHP
PHP URL路由类实例
2013/11/12 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
2019/03/25 PHP
浅谈javascript 面向对象编程
2009/10/28 Javascript
使用js获取QueryString的方法小结
2010/02/28 Javascript
jquery中:input和input的区别分析
2011/07/13 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
简单谈谈Javascript中类型的判断
2015/10/19 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
Vue.js上下滚动加载组件的实例代码
2017/07/17 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
2019/03/29 Javascript
node.js中事件触发器events的使用方法实例分析
2019/11/23 Javascript
vue 导出文件,携带请求头token操作
2020/09/10 Javascript
Python牛刀小试密码爆破
2011/02/03 Python
极简的Python入门指引
2015/04/01 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
Python 反转字符串(reverse)的方法小结
2018/02/20 Python
浅述python中深浅拷贝原理
2018/09/18 Python
python+opencv实现霍夫变换检测直线
2020/10/23 Python
QML使用Python的函数过程解析
2019/09/26 Python
使用python快速实现不同机器间文件夹共享方式
2019/12/22 Python
Python暴力破解Mysql数据的示例
2020/11/09 Python
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
小学教研工作制度
2014/01/15 职场文书
读书月活动方案
2014/05/22 职场文书
优秀学生干部个人事迹材料
2014/06/02 职场文书
医学生求职信
2014/07/01 职场文书
公证委托书格式
2014/09/13 职场文书
家电创业计划书
2019/08/05 职场文书
关于JavaScript回调函数的深入理解
2021/06/27 Javascript