欢迎来到山村网

AngularJS如何实现动态添加Option

2019-03-09 12:19:10浏览:398 来源:山村网   
核心摘要:本文实例讲述了AngularJS实现动态添加Option的方法。分享给大家供大家参考,具体如下:项目中后台管理设置,前台下拉动态添加opt

本文实例讲述了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=http://www.shancun.net/skin/default/image/nopic.gif  <script src=http://www.shancun.net/skin/default/image/nopic.gif  <script src=http://www.shancun.net/skin/default/image/nopic.gif  <script src=http://www.shancun.net/skin/default/image/nopic.gif  <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.show/confirm/i">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 山村

(责任编辑:豆豆)
下一篇:

linux中mysql5升级到mysql5.5的方法

上一篇:

用手机设置无线路由器

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com