2016-03-10 2 views
0

Этот контроллер возвращает список счетов-фактур (model.addAttribute («invoices», invoiceService.getAllInvoices (user.getId()))), затем перенаправляет на счета-фактуры jsp-страницу (метод invoiceService.getAllInvoices (пользователь. getId()) является успешным).Бесконечность прокрутки с angularjs spring mvc

@RequestMapping(value = { "/", "/get-all-invoices" }, method = RequestMethod.GET) 
public String getAllInvoices(HttpServletRequest request, ModelMap model) { 
    User user = (User) request.getSession().getAttribute("user"); 
    model.addAttribute("invoices", invoiceService.getAllInvoices(user.getId())); 
    model.addAttribute("title", "Invoices"); 
    return "invoices"; 
} 

Затем в счете-фактуре страница jsp получит список фактур. Однако на странице не загружаются первые 20 счетов, а функция loadmore не работает. Спасибо за помощь!

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<script src="<c:url value="/resources/js/jquery-1.12.0.min.js" />"  type="text/javascript"></script> 
 
<script src="<c:url value="/twitter.github.io/bootstrap/assets/css/bootstrap.css" />"  type="text/css"></script> 
 
<script src="<c:url value="/twitter.github.io/bootstrap/assets/css/bootstrap-responsive.css" />"  type="text/css"></script> 
 

 
<script src="<c:url value="/ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js" />"  type="text/javascript"></script> 
 
    <script src="<c:url value="/resources/js/app.js" />" type="text/javascript"></script> 
 
<meta charset=utf-8 /> 
 
<title>JS Bin</title> 
 
</head> 
 
<body ng-controller="InvoiceController"ng-app="app"> 
 
    <table class="table"> 
 
    <tr ng-repeat="invoice in invoices | limitTo:totalDisplayed"><td>{{invoice.name}}</td> 
 
    
 
    </tr> 
 
    </table> 
 
    <btn class="btn" ng-click="loadMore()">Load more</btn> 
 
    <script> 
 

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

 

 
app.controller('InvoiceController', function ($scope) { 
 
\t 
 
    
 
    
 
    $scope.invoices = invoices; 
 
    
 
    $scope.totalDisplayed = 20; 
 
    
 
    $scope.loadMore = function() { 
 
    \t 
 
     $scope.totalDisplayed += 20; 
 
    }; 
 
     
 
    
 
}); 
 

 

 
</script> 
 
</body> 
 

 

 
</html>

+0

Я не вижу $ http-вызов для получения данных с сервера в вашем угловом коде. –

+0

Поскольку вы возвращаете полный просмотр и весь контент (включая код javascript) внутри него, я думаю, вы должны присвоить объект счетов-фактур как jsp var. Что-то вроде этого: $ scope.invoices = $ {invoices} – Diego

+0

Спасибо Диего. Когда я использую $ scope.invoices = $ {invoices}. На странице invoses jsp отображается все invoice.name, но не ограничивается 20 счетами-фактурами. И я добавляю alert (sth) в этот скрипт, чтобы убедиться, что он запущен, предупреждение не вызывается, когда я удаляю $ scope.invoices = $ {invoices}, вызывается alert (sth). Неправильно? спасибо –

ответ

0

Угловая сторона его правильно, неправильно по типу пружины ответа.

Вы возвращаете String, AngularJS ng-repeat будет перебирать только список объектов, но вы повторяете значение String.

Это неправильно:

общественного Струнные getAllInvoices (HttpServletRequest запрос, ModelMap модель) {

User user = (User) request.getSession().getAttribute("user"); 
model.addAttribute("invoices", invoiceService.getAllInvoices(user.getId())); 
model.addAttribute("title", "Invoices"); 
return "invoices"; 

}

Это должно быть:

общественного Список getAllInvoices (HttpServletRequest запрос, модель ModelMap) {

User user = (User) request.getSession().getAttribute("user"); 
return invoiceService.getAllInvoices(user.getId()); 

}

invoiceService.getAllInvoices (user.getId()) сервис должен вернуть список счетов-фактур объектов.

+0

Спасибо за ваш вариант, но этот метод не возвращает строку, он присваивает invoiceService.getAllInvoices (user.getId()) -> счета-фактуры, поэтому счета-фактуры будут списком, а затем в jsp я вызываю этот список sth, как $ {invoices} , Когда я использую $ scope.invoices = $ {invoices}. На странице invoses jsp отображается все invoice.name, но не ограничивается 20 счетами-фактами, не так, спасибо –

Смежные вопросы