2017-02-12 134 views
0

我試圖在每個按鈕點擊動態添加li元素。但是新的li元素沒有被創建。我試圖用ng-repeat來達到同樣的效果。 下面是我的代碼Angularjs在按鈕點擊動態添加li元素

HTML代碼

<div data-ng-app="myApp" data-ng-controller="TestController" > 
<div ng-show="showQuerydiv" id="qscompid" style="margin-left:170px;margin-top:90px"> 
    <div class="btn-group" id="buttonOptions" style="width: 100%; position:absolute;"> 
    <a href="#" class="btn btn-primary" ng-click="openQuerydiv('query')">Query</a> 
    <a href="#" class="btn btn-primary" ng-click="openQuerydiv('script')">Script</a> 
    <a href="#" class="btn btn-primary" ng-click="openQuerydiv('compare')">Comp</a> 
    <div style="float: right; width: 30%"> 
    <a href="#operationDetailInfo" class="glyphicon glyphicon-info-sign" data-toggle="collapse" style="float: left;" title="Info"></a> 
    <div id="operationDetailInfo" class="collapse" style="width: 95%; float: left;"> 
    </div> 
    </div> 
    <br> 
    <div id="sqlQueryDiv" ng-show="isShow" style="width: 100%;margin-top: 30px;margin-left: -170px;"> 
     <ul class="nav nav-tabs" role="tablist" id="queryULId" style="width: 1140px;height: 39px;"> 
      <li class="active" ng-repeat="tabs in tabcount"> 
       <a href="#queryTab"+{{tabCount}} role="tab" data-toggle="tab"> 
       {{tabName}}{{tabCount}} 
       </a> 
       <span class="close" style="font-size: 12px; position: absolute; margin-left: 85%; margin-top: -25%; cursor: pointer;">X</span> 
     </li> 
    </ul> 
    <div class="tab-content" style="width:1177px;height: 225px;"> 

    </div> 
    </div> 
    </div> 
</div> 

角的js代碼

var app = angular.module('myApp', []); 
app.controller('TestController', function($scope){ 
console.log('Going for execution '); 
$scope.tabCount = 0 ; 
$scope.showQuerydiv = true; 
$scope.isShow = false; 
$scope.list =" " ; 
$scope.openQuerydiv = function(parameter) 
{ 
    alert("inside the openqueryDiv") ; 
    if(parameter == 'query') 
{ 
    alert("inside the openquerydiv" + parameter); 
    $scope.isShow=true; 
    $scope.tabName='SQL Query'; 
    $scope.tabCount++ ; 

} 
} 
}); 

在上面的代碼,上查詢按鈕,第一時間,該選項卡點擊被創建。在第二次點擊時,相同的選項卡被修改而不是創建新的選項卡。你能否讓我知道如何實現同樣的目標。點擊每個按鈕,我想要創建一個新的選項卡。

任何幫助,這是非常感謝。

+0

我看不到任何'ng-repeat'你的html – svarog

回答

1

您正在做ng-repeat="tabs in tabcount"tabcount是一個數字,ngRepeat需要迭代一個迭代變量,如列表或對象。

docs

的ngRepeat指令實例從集合中每個項目一次的模板。每個模板實例都有自己的作用域,其中給定的循環變量設置爲當前的集合項目,並且$ index被設置爲項目索引或鍵。

嘗試實例tabcount爲空數組

$scope.tabcount = []; 

這樣

$scope.openQuerydiv = function(parameter) { 
    $scope.tabcount.push({ 
     type: parameter, 
     link: "some_link.html", 
     name: "some name" 
    }); 
} 

中的onClick功能推對象中並使用的HTML名單上重複ngRepeat

<li class="active" ng-repeat="tabs in tabcount"> 
    <a href="{{tabs.link}}" role="tab" data-toggle="tab"> 
    {{tabs.name}} 
    </a> 
    <span class="close" style="font-size: 12px; position: absolute; margin-left: 85%; margin-top: -25%; cursor: pointer;">X</span> 
</li> 
+0

感謝上面的解決方案。我想在鏈接下包含一些動態html代碼。在上面你指定some_link.html。你可以讓我知道如何插入動態html代碼。我應該創建一個var幷包含並附加?任何幫助,這是非常讚賞。謝謝 – vr3w3c9

+0

角度docs不是很好,但他們會幫助你得到你的方向,也是,這是一個[簡單的plunk](https://plnkr.co/edit/lv5wJ8pdk2H95O4XZyWB?p=preview )演示ngRepeat – svarog

+0

感謝您的普拉克例子。我試圖在鏈接中包含一些動態html,並試圖從html代碼中調用它,但無法查看動態html代碼。它也不會給出任何錯誤。非常感謝您對此的幫助。 – vr3w3c9