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 相关文章推荐
js几个验证函数代码
Mar 25 Javascript
用jquery实现自定义风格的滑动条实现代码
Apr 26 Javascript
向左滚动文字 js代码效果
Aug 17 Javascript
详解AngularJS中的作用域
Jun 17 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖放商品放置购物车
Nov 30 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
Mar 30 Javascript
javascript跨域请求包装函数与用法示例
Nov 03 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
Aug 07 Javascript
node实现定时发送邮件的示例代码
Aug 26 Javascript
JavaScript 日期时间选择器一些小结
Apr 02 Javascript
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
Apr 12 jQuery
vue+导航锚点联动-滚动监听和点击平滑滚动跳转实例
Nov 13 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递归json类实例
2014/12/02 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
Javascript模板技术
2007/04/27 Javascript
jQuery getJSON()+.ashx 实现分页(改进版)
2013/03/28 Javascript
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
Angular设置title信息解决SEO方面存在问题
2016/08/19 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
2017/10/31 Javascript
Vue.js在数组中插入重复数据的实现代码
2017/11/17 Javascript
Vue中插入HTML代码的方法
2018/09/21 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
node.js基于socket.io快速实现一个实时通讯应用
2019/04/23 Javascript
javascript定时器的简单应用示例【控制方块移动】
2019/06/17 Javascript
深入探索VueJS Scoped CSS 实现原理
2019/09/23 Javascript
Vue关于组件化开发知识点详解
2020/05/13 Javascript
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
使用Python的urllib和urllib2模块制作爬虫的实例教程
2016/01/20 Python
Python数据类型详解(一)字符串
2016/05/08 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
正则给header的冒号两边参数添加单引号(Python请求用)
2019/08/09 Python
如何使用python进行pdf文件分割
2019/11/11 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
Python如何实现后端自定义认证并实现多条件登陆
2020/06/22 Python
新年抽奖获奖感言
2014/03/02 职场文书
我的中国梦演讲稿300字
2014/08/19 职场文书
本科毕业论文答辩稿
2015/06/23 职场文书
升学宴学生致辞
2015/07/27 职场文书
实用求职信模板范文
2019/05/13 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书
教你用eclipse连接mysql数据库
2021/04/22 MySQL
深入理解python协程
2021/06/15 Python