Я делаю простую программу с .net Core и AngularJs + webApi Мой код Api, как показано ниже Ошибка Js после запуска проблемы - возврат фабрики невозможен. , когда я установил точку останова на $ location.qwets = index.query(); мой «qwets» пуст, длина «qwets» равна 0. Метод get работает при каждом обновлении страницы, но результат ничего.AngularJs is empty list
Я изменил код теперь у меня есть результаты 'qwets', но индекс по-прежнему пуст
Спасибо
// GET: api/values
[HttpGet]
public IEnumerable<ApplicationUser> Get()
{
return new List<ApplicationUser> {
new ApplicationUser {Id="test", Email="[email protected]" },
new ApplicationUser {Id="tst2",Email="[email protected]" }
};
}
app.js Файл
(function() {
'use strict';
angular.module('saniehhaApp', [
// Angular modules
//'ngRoute'
// Custom modules
"indexService"
// 3rd Party Modules
]);
})();
(function() {
'use strict';
angular
.module('saniehhaApp')
.controller('indexController', indexController);
indexController.$inject = ['$location', 'index'];
function indexController($location, index) {
index.query()
.$promise.then(function (result) {
$scope.qwets = result;
}
})();
(function() {
'use strict';
var indexService = angular.module('indexService', ['ngResource']);
indexService.factory('index', ['$resource',
function ($resource) {
return $resource('/api/index/', {}, {
query:
{
method: 'GET',
params: {},
isArray: true
}
});
}]);
})();
и мой файл index.html
<!DOCTYPE html>
<html ng-app="saniehhaApp">
<head>
<meta charset="utf-8" />
<title>SampleTest</title>
<script src="vendor/angular.min.js"></script>
<script src="vendor/angular-resource.min.js"></script>
<script src="vendor/angular-route.min.js"></script>
<script src="scripts/app.js"></script>
</head>
<body ng-cloak>
<div ng-controller="indexController"></div>
<h2>list of users</h2>
<ul>
<li ng-repeat="qwet in qwets">
<p> "{{qwet.Id}}" - {{qwet.Email}}</p>
</li>
</ul>
</body>
</html>
Вы можете проверить вкладку сети в панели разработчика и посмотреть, возвращает ли вызов API ожидаемые данные? Можете вставить данные ответа в вопрос? – sabithpocker
То, что вы описываете, является поведением '$ resource' по умолчанию. Запрос является асинхронным, поэтому '$ resource' изначально возвращает пустой массив, который затем заполняется, когда запрос завершается. Если вам не нужно что-то делать немедленно в контроллере, когда поступают данные, это не должно быть проблемой ... наблюдатели в представлении все равно будут обновлять такие вещи, как ng-repeat – charlietfl
Проблема заключается в использовании '$ location', а не' $ scope' – charlietfl