2017-08-26 1 views
0

Ich implementiere eine Webanwendung, die Twitter verwendet.Gibt es eine Möglichkeit, HTML-Tabellen zu "paginieren", um die letzten Elemente mit Angular zu verstecken?

Ich habe eine Tabelle mit einer einzigen Spalte, die die Tweets des Benutzers enthält. Ich möchte die Anzahl der Tweets der Tabelle begrenzen und den Rest verstecken, und wenn der Benutzer möchte, zeige mehr Tweets. Das Konzept ähnelt der offiziellen Twitter-Anwendung.

Ich denke, dass Seitenumbruch ein falsches Konzept ist.

Wie kann ich dies mit HTML und Angular js tun?

Antwort

2

Sie können die limitTo Filter auf ng-repeat die Anfangslast von Daten beschränken und nach der Belastung mehr schlagen, können Sie die nächsten Punkte laden.

Arbeits Plnkr - http://plnkr.co/edit/CXYwDVJFYgje6tMdEKAq?p=preview

folgenden Code wird Ihnen mehr Tweets hinzuzufügen und einmal nicht mehr tweet bleibt, wird sie auf den Button Text auch ändern.

Snippet -

var app = angular.module('plunker', []); 
 

 
app.controller('MainCtrl', function($scope) { 
 

 
$scope.data = [ 
 
    {id: 1, tweet: 'This is tweet 1 - ies, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing.'}, 
 
    {id: 2, tweet: 'This is tweet 2 - ies, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop .'}, 
 
    {id: 3, tweet: 'This is tweet 3 - ies, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus Papsum.'}, 
 
    {id: 4, tweet: 'This is tweet 4 - ies, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus versions of Lorem Ipsum.'}, 
 
    {id: 5, tweet: 'This is tweet 5 - ies, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.'}, 
 
    {id: 6, tweet: 'This is tweet 6 - ies, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus.'}, 
 
    {id: 7, tweet: 'This is tweet 7 - ies, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop.'}, 
 
    {id: 8, tweet: 'This is tweet 8 - ies, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently.'}, 
 
    {id: 9, tweet: 'This is tweet 9 - ies, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop.'}, 
 
    {id: 10, tweet: 'This is tweet 10 - ies, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop.'} 
 
]; 
 

 
$scope.limit = 2; 
 
$scope.showMore = function() { 
 
    $scope.limit += 2; 
 
}; 
 

 
});
<!DOCTYPE html> 
 
<html ng-app="plunker"> 
 

 
<head> 
 
    <meta charset="utf-8" /> 
 
    <link rel="stylesheet" href="style.css" /> 
 
    <script data-require="[email protected]" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.11/angular.min.js" data-semver="1.5.11"></script> 
 
    <script src="app.js"></script> 
 
</head> 
 

 
<body ng-controller="MainCtrl"> 
 
    <h3 ng-bind="title"></h3> 
 
    <ul> 
 
    <li ng-repeat="item in data | limitTo: limit"> 
 
     <div style="margin: 5px;padding: 5px;border: 1px solid green;">{{item.tweet}}</div> 
 
    </li> 
 
    </ul> 
 
    
 
    <button ng-click="showMore()" ng-bind="limit !== data.length ? 'Load More' : 'No More Tweets'"></button> 
 
</body> 
 

 
</html>

+1

Vielen Dank !!! Es ist eine einfache, einfache und effektive Lösung !!! –

Verwandte Themen