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 相关文章推荐
单击复制文字兼容各浏览器的完美解决方案
Jul 04 Javascript
jquery制作 随机弹跳的小球特效
Feb 01 Javascript
JS实现超简单的仿QQ折叠菜单效果
Sep 21 Javascript
JS实现的文字与图片定时切换效果代码
Oct 06 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
Jan 24 Javascript
js闭包引起的事件注册问题介绍
Mar 29 Javascript
Bootstrap实现下拉菜单效果
Apr 29 Javascript
浅谈jquery拼接字符串效率比较高的方法
Feb 22 Javascript
js定时器+简单的动画效果实例
Nov 10 Javascript
Bootstrap实现的表格合并单元格示例
Feb 06 Javascript
微信小程序实现默认第一个选中变色效果
Jul 17 Javascript
深入理解javascript中的this
Feb 08 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程序时遇到的三个问题
2012/01/17 PHP
Zend Framework动作助手Url用法详解
2016/03/05 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
PHP使用标准库spl实现的观察者模式示例
2018/08/04 PHP
关于Javascript作用域链的八点总结
2013/12/06 Javascript
js控制input输入字符解析
2013/12/27 Javascript
开发中可能会用到的jQuery小技巧
2014/03/07 Javascript
jQuery学习总结之jQuery事件
2014/06/30 Javascript
js文件包含的几种方式介绍
2014/09/28 Javascript
Bootstrap每天必学之下拉菜单
2015/11/25 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
node.js中fs.stat与fs.fstat的区别详解
2017/06/01 Javascript
小程序实现发表评论功能
2018/07/06 Javascript
微信网页授权并获取用户信息的方法
2018/07/30 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
微信小程序时间控件picker view使用详解
2018/12/28 Javascript
[51:10]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python实现抓取百度搜索结果页的网站标题信息
2015/01/22 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
利用python中集合的唯一性实现去重
2020/02/11 Python
python读取与处理netcdf数据方式
2020/02/14 Python
Python ellipsis 的用法详解
2020/11/20 Python
python unichr函数知识点总结
2020/12/16 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
database面试题
2013/03/28 面试题
软件测试工程师结构化面试题库
2016/11/23 面试题
Why do we need Unit test
2013/01/03 面试题
公司联欢晚会主持词
2014/03/22 职场文书
通知函的格式
2015/04/27 职场文书
信用卡催款律师函
2015/05/27 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书