Angularjs 實現動態(tài)添加控件功能
實現下面這樣的需求:

點擊增加一塊數據盤,會出現數據盤選項。
(1)最開始,想到原生JavaScript,jQuery (appendChild()等方法結合AngularJS來添加新的元素。但是突然發(fā)現控件里面的數據綁定,原生javascript沒法控制。
(2)上網查資料,找到$compile服務,動態(tài)改變html內容。本以為這可以解決我的需求,但是仔細研究發(fā)現$compile是這樣的東西。
用$compile服務創(chuàng)建一個directive ‘compile',這個complie會將傳入的html字符串或者DOM轉換為一個template,然后直接在html里調用compile即可


(3)$compile不能滿足我的需求,繼續(xù)找資料,才發(fā)現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 實現動態(tài)添加控件功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
相關文章
AngularJS+bootstrap實現動態(tài)選擇商品功能示例
這篇文章主要介紹了AngularJS+bootstrap實現動態(tài)選擇商品功能,涉及AngularJS指令、事件響應及頁面元素動態(tài)操作相關技巧,需要的朋友可以參考下2017-05-05
對angular 監(jiān)控數據模型變化的事件方法$watch詳解
今天小編就為大家分享一篇對angular 監(jiān)控數據模型變化的事件方法$watch詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
Angular 中使用 FineReport不顯示報表直接打印預覽
這篇文章主要介紹了Angular 中使用 FineReport不顯示報表直接打印預覽,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08
Angular使用操作事件指令ng-click傳多個參數示例
這篇文章主要介紹了Angular使用操作事件指令ng-click傳多個參數,結合實例形式分析了AngularJS事件指令及相關的響應、處理操作技巧,需要的朋友可以參考下2018-03-03

