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实现textarea输入字符控制(仿微博输入控制字符)
Apr 26 Javascript
各浏览器对document.getElementById等方法的实现差异解析
Dec 05 Javascript
javascript中字符串拼接详解
Sep 26 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
Oct 16 Javascript
jquery-mobile表单的创建方法详解
Nov 23 Javascript
jquery Form轻松实现文件上传
May 24 jQuery
Angular项目从新建、打包到nginx部署全过程记录
Dec 09 Javascript
js实现购物车功能
Jun 12 Javascript
如何在 JavaScript 中更好地利用数组
Sep 27 Javascript
js实现每日签到功能
Nov 29 Javascript
微信小程序登录态和检验注册过没的app.js写法
May 22 Javascript
layui 数据表格 点击分页按钮 监听事件的实例
Sep 02 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
基于mysql的论坛(1)
2006/10/09 PHP
php header函数的常用http头设置
2015/06/25 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
thinkphp5框架扩展redis类方法示例
2019/05/06 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
javascript实现可改变滚动方向的无缝滚动实例
2013/06/17 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
EL表达式截取字符串的函数说明
2017/09/22 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
2018/09/14 Javascript
vue el-table实现行内编辑功能
2019/12/11 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
python实现指定字符串补全空格的方法
2015/04/30 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
2018/01/18 Python
python安装教程
2018/02/28 Python
Python 获取windows桌面路径的5种方法小结
2019/07/15 Python
django框架模板语言使用方法详解
2019/07/18 Python
python实现处理mysql结果输出方式
2020/04/09 Python
Python捕获异常堆栈信息的几种方法(小结)
2020/05/18 Python
Pycharm操作Git及GitHub的步骤详解
2020/10/27 Python
使用 HTML5 Canvas 制作水波纹效果点击图片就会触发
2014/09/15 HTML / CSS
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
党员2014两会学习心得体会
2014/03/17 职场文书
学习经验交流会主持词
2014/04/01 职场文书
股东协议书范本
2014/04/14 职场文书
环境科学专业求职信
2014/08/04 职场文书
立志成才演讲稿
2014/09/04 职场文书
2014年高一班主任工作总结
2014/12/05 职场文书
自我推荐信怎么写
2015/03/24 职场文书
李强感恩观后感
2015/06/17 职场文书
签字仪式主持词
2015/07/03 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书