Angularjs 实现动态添加控件功能


Posted in Javascript onMay 25, 2017

实现下面这样的需求:

Angularjs 实现动态添加控件功能

点击增加一块数据盘,会出现数据盘选项。

(1)最开始,想到原生JavaScript,jQuery (appendChild()等方法结合AngularJS来添加新的元素。但是突然发现控件里面的数据绑定,原生javascript没法控制。

(2)上网查资料,找到$compile服务,动态改变html内容。本以为这可以解决我的需求,但是仔细研究发现$compile是这样的东西。

用$compile服务创建一个directive ‘compile',这个complie会将传入的html字符串或者DOM转换为一个template,然后直接在html里调用compile即可

Angularjs 实现动态添加控件功能

Angularjs 实现动态添加控件功能

(3)$compile不能满足我的需求,继续找资料,才发现angularjs实现这样的需求,如此简洁明朗。即ng-repeat  $index.

<div ng-repeat="item in DATA.data"> 
    <div class="form-group"> 
    <div class="col-md-12"> 
      <label class="col-md-1" >{{$index + 1}}</label> 
      <div class="col-md-9"><input type="text" class="form-control" ng-model="item.value" name="item{{$index + 1}}" /></div> 
      <div><input type="button" ng-click="item.delete($index)" value="删除"></div> 
    </div> 
    </div> 
</div 
<div><input type="button" ng-click="add()" value="增加"></div>
testModule.controller('testController', 
   function ($scope, $log) { 
     $scope.DATA = new Object(); 
     $scope.DATA.data = [{key: 0, value: ""}]; 
    // add 
     $scope.add = function($index) {         
       // 用时间戳作为每个item的key        
       $scope.DATA.data.splice($index + 1, 0,{key: new Date().getTime(), value: ""});    
     } 
     // delete 
     $scope.DATA.delete = function($index) {      
      $scope.DATA.data.splice($index, 1); 
    } 
});

以上所述是小编给大家介绍的Angularjs 实现动态添加控件功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript 检测浏览器和操作系统的脚本
Dec 26 Javascript
multiSteps 基于Jquery的多步骤滑动切换插件
Jul 22 Javascript
js图片自动切换效果处理代码
May 07 Javascript
js调用后台servlet方法实例
Jun 09 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
Jun 24 Javascript
js调用webservice构造SOAP进行身份验证
Apr 27 Javascript
javascript 将共享属性迁移到原型中去的实现方法
Aug 31 Javascript
Bootstrap显示与隐藏简单实现代码
Mar 06 Javascript
Angular2 自定义validators的实现方法
Jul 05 Javascript
Angular中支持SCSS的方法
Nov 18 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
May 24 Javascript
Vue 2.0 侦听器 watch属性代码详解
Jun 19 Javascript
JavaScript实现自动跳转文本功能
May 25 #Javascript
angularjs项目的页面跳转如何实现(5种方法)
May 25 #Javascript
AngularJS基于factory创建自定义服务的方法详解
May 25 #Javascript
AngularJS读取JSON及XML文件的方法示例
May 25 #Javascript
bootstrap+jQuery实现的动态进度条功能示例
May 25 #jQuery
基于VUE选择上传图片并页面显示(图片可删除)
May 25 #Javascript
jQuery滚动插件scrollable.js用法分析
May 25 #jQuery
You might like
PHP根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
js+JQuery返回顶部功能如何实现
2012/12/03 Javascript
javascript返回顶部效果(自写代码)
2013/01/06 Javascript
jQuery javaScript捕获回车事件(示例代码)
2013/11/07 Javascript
初识Node.js
2014/09/03 Javascript
javascript获取文档坐标和视口坐标
2015/05/26 Javascript
详解javascript高级定时器
2015/12/31 Javascript
JavaScript判断变量是否为数组的方法(Array)
2016/02/24 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
新入门node.js必须要知道的概念(必看篇)
2016/08/10 Javascript
Javascript中的作用域及块级作用域
2017/12/08 Javascript
微信小程序适配iphoneX的实现方法
2018/09/18 Javascript
浅谈Angular 观察者模式理解
2018/11/01 Javascript
koa源码中promise的解读
2018/11/13 Javascript
Nuxt页面级缓存的实现
2020/03/09 Javascript
vue如何使用rem适配
2021/02/06 Vue.js
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
python 读取鼠标点击坐标的实例
2018/12/29 Python
python3.4爬虫demo
2019/01/22 Python
基于python的socket实现单机五子棋到双人对战
2020/03/24 Python
Pytorch 之修改Tensor部分值方式
2019/12/27 Python
Matplotlib自定义坐标轴刻度的实现示例
2020/06/18 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
Html5原创俄罗斯方块(基于canvas)
2019/01/07 HTML / CSS
英国香水店:The Perfume Shop
2017/03/27 全球购物
英国经济型酒店品牌:Travelodge
2019/12/17 全球购物
SQL Server提供的3种恢复模型都是什么? 有什么区别?
2012/05/13 面试题
宣传普通话标语
2014/06/27 职场文书
会计师事务所实习证明
2014/11/16 职场文书
个人求职意向书
2015/05/11 职场文书
mybatis调用sqlserver存储过程返回结果集的方法
2021/05/08 SQL Server
Python 发送SMTP邮件的简单教程
2021/06/24 Python