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 相关文章推荐
Javascript入门学习资料收集整理篇
Jul 06 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
Apr 24 Javascript
javascript数组操作(创建、元素删除、数组的拷贝)
Apr 07 Javascript
JavaScript中this关键词的使用技巧、工作原理以及注意事项
May 20 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
Oct 30 Javascript
JavaScript中Function()函数的使用教程
Jun 04 Javascript
Bootstrap3 内联单选和多选框
Dec 29 Javascript
完美解决input[type=number]无法显示非数字字符的问题
Feb 28 Javascript
jQuery实现frame之间互通的方法
Jun 26 jQuery
详解vue.js+UEditor集成 [前后端分离项目]
Jul 07 Javascript
layui的layedit富文本赋值方法
Sep 18 Javascript
ES6 async、await的基本使用方法示例
Jun 06 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取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
ThinkPHP安装和设置
2015/07/27 PHP
PHP连接MySQL数据库三种实现方法
2020/12/10 PHP
textarea的value是html文件源代码,存成html文件的代码
2007/04/20 Javascript
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
jquery常用操作小结
2014/07/21 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
使用jQuery实现页面定时弹出广告效果
2017/08/24 jQuery
javaScript之split与join的区别(详解)
2017/11/08 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
Vue插槽原理与用法详解
2019/03/05 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
antd design table更改某行数据的样式操作
2020/10/31 Javascript
[01:14:30]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第二场 8.20.mp4
2019/08/22 DOTA
linux下安装easy_install的方法
2013/02/10 Python
python脚本生成caffe train_list.txt的方法
2018/04/27 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
Python3运算符常见用法分析
2020/02/14 Python
python中time.ctime()实例用法
2021/02/03 Python
HTML5+JS实现俄罗斯方块原理及具体步骤
2013/11/29 HTML / CSS
naturalizer加拿大官网:美国娜然女鞋
2017/04/04 全球购物
Bailey帽子官方商店:Bailey Hats
2018/09/25 全球购物
美国健康和保健平台:healtop
2020/07/02 全球购物
元旦晚会上单位领导演讲稿
2014/01/05 职场文书
逃课上网检讨书
2014/02/20 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
2014统计局民主生活会对照检查材料思想汇报
2014/10/02 职场文书
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
检讨书1000字
2014/10/11 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
幼儿园保教工作总结2015
2015/10/15 职场文书
Oracle笔记
2021/04/05 Oracle
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
简单且有用的Python数据分析和机器学习代码
2021/07/02 Python