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的多选下拉框(自写)
May 05 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
Dec 17 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
Mar 01 Javascript
Bootstrap每天必学之栅格系统(布局)
Nov 25 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
May 18 Javascript
归纳下js面向对象的几种常见写法总结
Aug 24 Javascript
解析jquery easyui tree异步加载子节点问题
Mar 08 Javascript
JavaScript原生数组Array常用方法
Apr 06 Javascript
JS实现获取汉字首字母拼音、全拼音及混拼音的方法
Nov 14 Javascript
微信小程序视图容器(swiper)组件创建轮播图
Jun 19 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
Apr 19 Javascript
基于Vue中的父子传值问题解决
Jul 27 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
mysql5写入和读出乱码解决
2006/11/25 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
php中url函数介绍及使用示例
2014/02/13 PHP
php获取excel文件数据
2017/04/21 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
PHP项目多语言配置平台实现过程解析
2020/05/18 PHP
jquery动态加载js三种方法实例
2013/08/03 Javascript
js opener的使用详解
2014/01/11 Javascript
JavaScript的原型继承详解
2015/02/15 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
nodeJS实现路由功能实例代码
2017/06/08 NodeJs
使用Vue完成一个简单的todolist的方法
2017/12/01 Javascript
详解Vue-cli webpack移动端自动化构建rem问题
2018/04/07 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
Node.js学习教程之Module模块
2019/09/03 Javascript
JS实现拼图游戏
2021/01/29 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
Vue执行方法,方法获取data值,设置data值,方法传值操作
2020/08/05 Javascript
vue 页面跳转的实现方式
2021/01/12 Vue.js
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
Python中的默认参数详解
2015/06/24 Python
Python中str is not callable问题详解及解决办法
2017/02/10 Python
Python+matplotlib绘制不同大小和颜色散点图实例
2018/01/19 Python
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
python中列表的切片与修改知识点总结
2019/07/23 Python
python__new__内置静态方法使用解析
2020/01/07 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
计算机专业个人求职自荐信
2013/09/21 职场文书
婚礼答谢宴主持词
2014/03/14 职场文书
外贸英文求职信范文
2015/03/19 职场文书
javascript中Set、Map、WeakSet、WeakMap区别
2022/12/24 Javascript