您好,登錄后才能下訂單哦!
這篇文章主要介紹Angularjs如何實現動態添加控件功能,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
實現下面這樣的需求:
點擊增加一塊數據盤,會出現數據盤選項。
(1)最開始,想到原生JavaScript,jQuery (appendChild()等方法結合AngularJS來添加新的元素。但是突然發現控件里面的數據綁定,原生javascript沒法控制。
(2)上網查資料,找到$compile服務,動態改變html內容。本以為這可以解決我的需求,但是仔細研究發現$compile是這樣的東西。
用$compile服務創建一個directive ‘compile',這個complie會將傳入的html字符串或者DOM轉換為一個template,然后直接在html里調用compile即可
(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如何實現動態添加控件功能”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。