技术员联盟提供win764位系统下载,win10,win7,xp,装机纯净版,64位旗舰版,绿色软件,免费软件下载基地!

当前位置:主页 > 教程 > 服务器类 >

AngularJS如何实现动态添加Option

来源:技术员联盟┆发布时间:2017-10-19 18:21┆点击:

项目中后台管理设置,前台下拉动态添加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=http://www.3lian.com/edu/2017/05-17/"bootstrap.min.css" rel="external nofollow" > <script src=http://www.3lian.com/edu/2017/05-17/"jQuery.min.js"></script> <script src=http://www.3lian.com/edu/2017/05-17/"angular.js"></script> <script src=http://www.3lian.com/edu/2017/05-17/"angular-animate.js"></script> <script src=http://www.3lian.com/edu/2017/05-17/"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 三联