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页面顶部卷动广告效果
Dec 01 Javascript
JQuery 入门实例1
Jun 25 Javascript
js变量以及其作用域详解
Jul 18 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
Dec 17 Javascript
JavaScript制作简易的微信打飞机
Mar 31 Javascript
提高JavaScript执行效率的23个实用技巧
Mar 01 Javascript
Vue2 配置 Axios api 接口调用文件的方法
Nov 13 Javascript
利用Dectorator分模块存储Vuex状态的实现
Feb 05 Javascript
javascript如何实现create方法
Nov 04 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
Oct 27 Javascript
JS数据类型分类及常用判断方法
Nov 19 Javascript
JS实现点击掉落特效
Jan 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
2006/10/09 PHP
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
2014/11/03 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
List Installed Hot Fixes
2007/06/12 Javascript
2007/12/23更新创意无限,简单实用(javascript log)
2007/12/24 Javascript
js监听表单value的修改同步问题,跨浏览器支持
2009/12/31 Javascript
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
JSP中使用JavaScript动态插入删除输入框实现代码
2014/06/13 Javascript
javascript设计模式之中介者模式Mediator
2014/12/30 Javascript
js判断登录与否并确定跳转页面的方法
2015/01/30 Javascript
jQuery移动web开发中的页面初始化与加载事件
2015/12/03 Javascript
Bootstrap中CSS的使用方法
2016/02/17 Javascript
JavaScript中循环遍历Array与Map的方法小结
2016/03/12 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
2016/10/14 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
解决vue无法设置滚动位置的问题
2018/10/07 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
jQuery实现图片随机切换、抽奖功能(实例代码)
2019/10/23 jQuery
vue props对象validator自定义函数实例
2019/11/13 Javascript
vue添加自定义右键菜单的完整实例
2020/12/08 Vue.js
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
简单了解python单例模式的几种写法
2019/07/01 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
html5指南-2.如何操作document metadata
2013/01/07 HTML / CSS
eDreams加拿大:廉价航班、酒店和度假
2019/03/29 全球购物
大学毕业生通用求职信
2013/09/28 职场文书
美发店5.1活动方案
2014/01/24 职场文书
学子宴答谢词
2014/01/25 职场文书
产品设计开发计划书
2014/05/07 职场文书
2014年党员自我评议(5篇)
2014/09/12 职场文书
使用python如何删除同一文件夹下相似的图片
2021/05/07 Python
SpringBoot详解整合Redis缓存方法
2022/07/15 Java/Android