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 相关文章推荐
jquery 选择器部分整理
Oct 28 Javascript
使用SyntaxHighlighter实现HTML高亮显示代码的方法
Feb 04 Javascript
js DOM 元素ID就是全局变量
Sep 20 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
Apr 02 Javascript
jQuery控制网页打印指定区域的方法
Apr 07 Javascript
Bootstrap编写导航栏和登陆框
May 30 Javascript
轮播的简单实现方法
Jul 28 Javascript
简单谈谈JS数组中的indexOf方法
Oct 13 Javascript
JS实现无缝循环marquee滚动效果
May 22 Javascript
微信小程序switch开关选择器使用详解
Jan 31 Javascript
node.js使用redis储存session的方法
Sep 26 Javascript
使用eslint和githooks统一前端风格的技巧
Jul 29 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查询快递信息的方法
2015/03/07 PHP
php实现将上传word文件转为html的方法
2015/06/03 PHP
php strftime函数的详细用法
2018/06/21 PHP
laravel 判断查询数据库返回值的例子
2019/10/11 PHP
基于jsTree的无限级树JSON数据的转换代码
2010/07/27 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
Javascript函数的参数
2015/07/16 Javascript
JS实现网页游戏中滑块响应鼠标点击移动效果
2015/10/19 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
在vue中通过axios异步使用echarts的方法
2018/01/13 Javascript
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
vue+element_ui上传文件,并传递额外参数操作
2020/12/05 Vue.js
iview实现动态表单和自定义验证时间段重叠
2021/01/10 Javascript
[00:42]《辉夜杯》—职业组预选赛12月3日15点 正式打响
2015/12/03 DOTA
零基础写python爬虫之HTTP异常处理
2014/11/05 Python
Python中的错误和异常处理简单操作示例【try-except用法】
2017/07/25 Python
python读取xlsx的方法
2018/12/25 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
2020/05/26 Python
浅谈pytorch中的BN层的注意事项
2020/06/23 Python
英国虚拟主机服务商:eUKhost
2016/08/16 全球购物
戴尔美国官网:Dell
2016/08/31 全球购物
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
main 函数执行以前,还会执行什么代码
2013/04/17 面试题
办公室综合文员岗位职责范本
2014/02/13 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
大学生考试作弊检讨书1000字
2014/10/14 职场文书
2014大学辅导员工作总结
2014/12/02 职场文书
长城的导游词
2015/01/30 职场文书
农村党员干部承诺书
2015/05/04 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书