я не отображаю таблицу ajax в html, почему?

#javascript #java #html #angularjs

Вопрос:

Я пытаюсь запустить приложение с помощью AngularJS и Ajax. Я также использую Java-контроллер, который возвращает JSON. К сожалению, html не отображает таблицу, я не могу понять, в чем дело, пожалуйста, помогите. Я только начинаю работать с Ajax и AngularJS. Я пытаюсь вывести таблицу в формате Html, вот мои файлы:

Frames.js

 var app = angular.module('frames', []);  app.controller("FramesController", function ($scope, $http) {   $scope.successGetFramesCallback = function (response) {  $scope.frameList = response.data;  $scope.errormessage="";  };   $scope.errorGetFramesCallback = function (error) {  console.log(error);  $scope.errormessage="Unable to get list of frames";  };   $scope.getFrames = function () {  $http.get('/mcga/frames').then($scope.successGetFramesCallback, $scope.errorGetFramesCallback);  };  });  

frames.html:

 lt;!DOCTYPE htmlgt; lt;html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"  xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3"gt; lt;headgt;   lt;meta charset="utf-8"gt;lt;/metagt;  lt;meta http-equiv="X-UA-Compatible" content="IE=edge"gt;lt;/metagt;  lt;titlegt;Schools in our universitylt;/titlegt;   lt;script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"gt;lt;/scriptgt;  lt;script src="js/frames.js"gt;lt;/scriptgt;  lt;/headgt; lt;body ng-app="frames" ng-controller="FramesController"gt;  lt;h1gt;Компьютерные корпусаlt;/h1gt;  lt;div ng-controller="getFrames" ng-show="frameList.length gt; 0"gt;  lt;table id="frameTable"gt;  lt;theadgt;  lt;trgt;  lt;thgt;lt;h2gt;Idlt;/h2gt;lt;/thgt;  lt;thgt;lt;h2gt;Companylt;/h2gt;lt;/thgt;  lt;thgt;lt;h2gt;Modellt;/h2gt;lt;/thgt;  lt;thgt;lt;h2gt;Pricelt;/h2gt;lt;/thgt;  lt;thgt;lt;h2gt;Amountlt;/h2gt;lt;/thgt;  lt;/trgt;  lt;/theadgt;  lt;tbodygt;  lt;tr ng-repeat="frame in frameList" id="{{frame.id}}"gt;  lt;tdgt;{{frame.id}}lt;/tdgt;  lt;tdgt;{{frame.company}}lt;/tdgt;  lt;tdgt;{{frame.model}}lt;/tdgt;  lt;tdgt;{{frame.price}}lt;/tdgt;  lt;tdgt;{{frame.amount}}lt;/tdgt;  lt;/trgt;  lt;/tbodygt;  lt;/tablegt; lt;/divgt; lt;/bodygt; lt;/htmlgt;   

и мой контроллер написан на java, он получает список из базы данных и возвращает его в JSON, он отлично работает. Мне возвращается JSON. Вот код:

 @RestController public class MyController {   @Autowired  private Service service;   @GetMapping("mcga/frames")  public ResponseEntitylt;Objectgt; showAllFrames()  {  Listlt;framegt; frameList=service.getAllFrames();  return ResponseEntity.ok(frameList);   } }  

И мой конфигурационный контроллер:

 @Configuration public class ControllerConfig extends WebMvcConfigurerAdapter {  @Override  public void addViewControllers(ViewControllerRegistry registry) {  registry.addViewController("/frames").setViewName("frames");  } }  

Ответ №1:

Вы неправильно поставили ng-контроллер. Это должен быть FramesController: что-то вроде этого

 lt;div ng-controller="FramesController" ng-show="frameList.length gt; 0"gt;  lt;table id="frameTable"gt;  lt;theadgt;  lt;trgt;  lt;thgt;lt;h2gt;Idlt;/h2gt;lt;/thgt;  lt;thgt;lt;h2gt;Companylt;/h2gt;lt;/thgt;  lt;thgt;lt;h2gt;Modellt;/h2gt;lt;/thgt;  lt;thgt;lt;h2gt;Pricelt;/h2gt;lt;/thgt;  lt;thgt;lt;h2gt;Amountlt;/h2gt;lt;/thgt;  lt;/trgt;  lt;/theadgt;  lt;tbodygt;  lt;tr ng-repeat="frame in frameList" id="{{frame.id}}"gt;  lt;tdgt;{{frame.id}}lt;/tdgt;  lt;tdgt;{{frame.company}}lt;/tdgt;  lt;tdgt;{{frame.model}}lt;/tdgt;  lt;tdgt;{{frame.price}}lt;/tdgt;  lt;tdgt;{{frame.amount}}lt;/tdgt;  lt;/trgt;  lt;/tbodygt;  lt;/tablegt; lt;/divgt;  

Комментарии:

1. спасибо, моя ошибка была более прозрачной, я неправильно указал путь к файлу js