2016-04-26 103 views
2

陣列的結構類似於所以拼接陣列嵌套NG-重複內,

$scope.structure = { 
    sections: [{ 
     id:0, 
     sectionItems: [] 
    },{ 
     id:1, 
     sectionItems: [] 
    },{ 
     id:2, 
     sectionItems: [] 
    }] 
}; 

我有一個嵌套的NG-重複,所以我可以顯示內sectionItems [] (內部項目應的對象和中的一個鍵是名稱 - 不相關)

<div ng-repeat="sections in structure.sections" class="col-md-12"> 
    <div class="panel panel-info"> 
    <ul class="screenW-section"> 
     <li class="col-xs-6" ng-repeat="item in sections.sectionItems" 
     ng-click="item.splice($index, 1)"> 
      {{item.Name}} 
     </li> 
    </ul> 
</div> </div> 

我希望能夠取消對點擊的項目,但 NG點擊=「item.splice($指數,1) 不工作無論多麼我格式化它。

+0

您所有的東西的作品,問題是在代碼 – CountGradsky

回答

3

試試這個:

var app = angular.module("testApp", []); 
 
app.controller('testCtrl', function($scope){ 
 
    $scope.structure = { 
 
    sections: [{ 
 
     id:0, 
 
     sectionItems: ['1','2','3'] 
 
    },{ 
 
     id:1, 
 
     sectionItems: ['11','21','32'] 
 
    },{ 
 
     id:2, 
 
     sectionItems: ['12','22','32'] 
 
    }] 
 
}; 
 
    
 
    
 
    $scope.remove = function(sectionItems,index){ 
 
    sectionItems.splice(index, 1);  
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="testApp" ng-controller="testCtrl"> 
 

 
    <div ng-repeat="sections in structure.sections" class="col-md-12"> 
 
    <div class="panel panel-info"> 
 
    <ul class="screenW-section"> 
 
     <li class="col-xs-6" ng-repeat="item in sections.sectionItems" 
 
     ng-click="remove(sections.sectionItems,$index)"> 
 
      {{item}} 
 
     </li> 
 
    </ul> 
 
</div> </div> 
 

 
</div>

3

要刪除一個項目,您需要將其從陣列中刪除。
因此,舉例來說,你可以做

ng-click="remove(sections.sectionItems, $index)" 
在視圖

,並

$scope.remove = function(array, index) { 
    array.splice(index, 1);  
} 
控制器

...

在項目
+1

「節」和「sectionItems」另一部分是數組,不能被引用的方式。 – CountGradsky

+1

因爲它是嵌套的,所以你需要section和sectionItem的索引。換句話說,你也需要在你的答案中引用正確的部分。 – FajitaNachos

+1

@CountGradsky:*你*在視圖中使用它作爲對象...我錯了嗎? – MarcoS

1

你打電話拼接,而不是陣列

ng-click="sections.sectionItems.splice($index, 1)" 
+0

我得到「TypeError:scope. $ eval(...)。splice不是一個函數」在每個解決方案 – CountGradsky