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 相关文章推荐
深入理解JavaScript系列(13) This? Yes,this!
Jan 18 Javascript
JS批量修改PS中图层名称的方法
Jan 26 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
Jun 23 Javascript
EditPlus中的正则表达式 实战(4)
Dec 15 Javascript
JavaScript实现简单的星星评分效果
May 18 Javascript
node+express+ejs使用模版引擎做的一个示例demo
Sep 18 Javascript
react配合antd组件实现的管理系统示例代码
Apr 24 Javascript
浅谈vuex actions和mutation的异曲同工
Dec 13 Javascript
JS实现换肤功能的方法实例详解
Jan 30 Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
Sep 09 Javascript
layui监听select变化,以及设置radio选中的方法
Sep 24 Javascript
Ajax实现三级联动效果
Oct 05 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
dede全站URL静态化改造[070414更正]
2007/04/17 PHP
PHP一致性hash分布式算法封装类定义与用法示例
2018/08/04 PHP
Mozilla中显示textarea中选择的文字
2006/09/07 Javascript
精解window.setTimeout()&amp;window.setInterval()使用方式与参数传递问题!
2007/11/23 Javascript
eval与window.eval的差别分析
2011/03/17 Javascript
javaScript arguments 对象使用介绍
2013/10/18 Javascript
JS动态加载当前时间的方法
2015/02/09 Javascript
jQuery构造函数init参数分析
2015/05/13 Javascript
简介JavaScript中的sub()方法的使用
2015/06/08 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
2016/05/10 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
微信小程序 获取相册照片实例详解
2016/11/16 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
JS实现动态生成html table表格的方法分析
2018/07/11 Javascript
SVG实现时钟效果
2018/07/17 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
JavaScript中的各种宽高属性的实现
2020/05/08 Javascript
javascript实现前端成语点击验证
2020/06/24 Javascript
JavaScript通如何过RGraph实现动态仪表盘
2020/10/15 Javascript
vant自定义二级菜单操作
2020/11/02 Javascript
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
通过python实现弹窗广告拦截过程详解
2019/07/10 Python
python str字符串转uuid实例
2020/03/03 Python
Python实现淘宝秒杀功能的示例代码
2021/01/19 Python
生产车间班组长岗位职责
2014/01/06 职场文书
清洁工表扬信
2014/01/08 职场文书
《手指教学》反思
2014/02/14 职场文书
经济职业学院毕业生自荐书
2014/03/17 职场文书
经销商订货会主持词
2014/03/27 职场文书
爱心捐款倡议书范文
2014/05/12 职场文书
法人代表任命书范本
2014/06/05 职场文书
违反交通法规检讨书
2014/09/10 职场文书
教师节感想
2015/08/11 职场文书
个人的事迹材料怎么写
2019/04/24 职场文书
nginx静态资源的服务器配置方法
2022/07/07 Servers