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 相关文章推荐
关于可运行代码无法正常执行的使用说明
May 13 Javascript
THREE.JS入门教程(3)着色器-下
Jan 24 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
Jun 09 Javascript
node.js中的http.response.writeHead方法使用说明
Dec 14 Javascript
JQuery动态添加和删除表格行的方法
Mar 09 Javascript
基于KO+BootStrap+MVC实现的分页控件代码分享
Nov 07 Javascript
js遮罩效果制作弹出注册界面效果
Jan 25 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
Mar 01 Javascript
JS实现DOM删除节点操作示例
Apr 04 Javascript
微信小程序实现天气预报功能
Jul 18 Javascript
react中使用css的7中方式(最全总结)
Feb 11 Javascript
vue路由分文件拆分管理详解
Aug 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
星际初学者游戏中永远要做的事
2020/03/04 星际争霸
用sql命令修改数据表中的一个字段为非空(not null)的语句
2010/06/04 PHP
PHP中使用Memache作为进程锁的操作类分享
2015/03/30 PHP
php中使用sftp教程
2015/03/30 PHP
PHP数组遍历的几种常见方式总结
2019/02/15 PHP
extjs实现选择多表自定义查询功能 前台部分(ext源码)
2011/12/20 Javascript
Javascript弹出窗口的各种方法总结
2013/11/11 Javascript
jQuery中val()方法用法实例
2014/12/25 Javascript
Vue 实用分页paging实例代码
2017/04/12 Javascript
微信小程序页面开发注意事项整理
2017/05/18 Javascript
使用webpack搭建vue项目及注意事项
2019/06/10 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
2019/07/24 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
Python字符串替换实例分析
2015/05/11 Python
在Python中使用正则表达式的方法
2015/08/13 Python
基于python yield机制的异步操作同步化编程模型
2016/03/18 Python
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
Python实现注册、登录小程序功能
2018/09/21 Python
Python一个简单的通信程序(客户端 服务器)
2019/03/06 Python
深入了解Django中间件及其方法
2019/07/26 Python
Python模块/包/库安装的六种方法及区别
2020/02/24 Python
Django+python服务器部署与环境部署教程详解
2020/03/30 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
2020/07/03 Python
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
介绍一下Linux文件的记录形式
2012/04/18 面试题
英语系本科生个人求职信
2013/09/21 职场文书
优秀民警事迹材料
2014/01/29 职场文书
广告设计应届生求职信
2014/03/01 职场文书
建房协议书
2014/04/11 职场文书
委托书格式
2014/08/01 职场文书
股份合作协议书
2014/09/10 职场文书
护士长2014年终工作总结
2014/11/11 职场文书
教研活动主持词
2015/07/03 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
opencv读取视频并保存图像的方法
2021/06/04 Python
Pandas搭配lambda组合使用详解
2022/01/22 Python