Я делаю небольшой учебник онлайн, и в основном я нахожусь в точке, где он хочет, чтобы я отображал данные с помощью http get от контроллера, пока образцы данных находятся в файле сервера. Я смог вытащить данные из файла controller.js но когда я пытаюсь сделать это с помощью.get, он работает и не показывает никаких данных о локальном шланге. Я думаю, что проблема в моем файле controller.js, но это было несколько часов отладки.. на самом деле не вижу проблемы. Я уверен, что это что-то глупое.
Файл controller.js
var myApp = angular.module('myApp', []);
myApp.controller('AppCtrl', ['$scope', '$http', function($scope, $http) {
console.log("Hello World from controller");
$http.get('/savinglist').success(function(response){
console.log("got data");
$scope.savinglist = response;
});
}]);
Файл server.js
var express = require('express');
var app = express();
app.use(express.static(__dirname + "/public"));
app.get('/savinglist', function (res, req){
console.log("I recieved get request")
person1= {
name: 'Tim',
price: '[email protected]',
discount:'(571) 426-1433'
};
person2 = {
name:'Liam',
price:'[email protected]',
discount: '(777) 777-7777'
};
person3={
name: 'Jessie',
price:'[email protected]',
discount: '(684) 426-1232'
};
var savinglist = [person1, person2, person3];
res.json(savinglist);
});
app.listen(3000);
console.log("server running on post 3000");
Файл index.html
<!DOCTYPE>
<html ng-app="myApp">
<head>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css " integrity="sha512-dTfge/zgoMYpP7QbHy4gWMEGsbsdZeCXz7irItjcC3sPUFtf0kuFbDz/ixG7ArTxmDjLXDmezHubeNikyKGVyQ==" crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css" integrity="sha384-aUGj/X2zp5rLCbBxumKTCw2Z50WgIr1vs/PFN4praOTvYXWlVyh2UtNUU0KAUhAX" crossorigin="anonymous">
<title>How much are they saving</title>
</head>
<body>
<div class="container" ng-controller="AppCtrl">
<h1>Saving $$$$?</h1>
<table class="table">
<thread>
<tr>
<th>Name</th>
<th>Price</th>
<th>Discount</th>
</tr>
</thread>
<tbody>
<tr ng-repeat="savings in savinglist">
<td>{{savings.name}}</td>
<td>{{savings.price}}</td>
<td>{{savings.discount}}</td>
</tr>
</tbody>
</table>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js"> </script>
<script src="controllers/controller.js"></script>
</body>
</html>
В вашем файле server.js у вас есть опечатка. Функция обратного вызова, которую вы здесь указываете, должна иметь объект запроса в качестве первого параметра, а второй - ответ.
Вы написали:
app.get('/savelist', function (res, req) {console.log("Я получил запрос на получение запроса")
......
res.json(savinglist); res.json(savinglist); }); });
Вместо первой строки следует написать: app.get('/savelist', function (req, res) {