Ich brauche Hilfe für meine Probleme zu lösen. Ich habe Probleme mit Anrufdaten vom Backend. Bitte sagen Sie mir, wie ich die Daten vom Backend bekommen kann.TypeError: Die Eigenschaft 'length' von undefined kann nicht gelesen werden. Meine Daten können nicht geladen werden
TypeError: Cannot read property 'length' of undefined
ich denke, ich habe Probleme mit meinem Controller, um die Daten zu laden.
api
application.factory('API', ['Settings',
function(Settings)
{
var api = {};
api.projects = '/ppr/resource/misbactivecaseJPA';
api.get = function(endpoint)
{
return Settings.host.concat(api[endpoint]);
};
return api;
}
]);
Service
application.factory('Project', ['$resource', 'API',
function($resource, API)
{
return $resource(API.get('projects'), {
Id: '@id',
}, {
delete: {
method: 'DELETE',
},
get: {
method: 'GET',
},
save: {
method: 'POST',
},
query: {
method: 'GET',
isArray: true,
},
update: {
method: 'PUT',
},
});
}]);
Controller
application.controller('Property_ProjectController', ['$location', '$scope', '$mdDialog' , '$mdMedia', 'Project',
function($location, $scope, $mdDialog, $mdMedia, Project)
{
$scope.limit = 50;
$scope.page = 0;
$scope.projects = [];
$scope.query = {
$: '',
};
$scope.load = function()
{
var options = {};
options.limit = $scope.limit;
if (++$scope.page > 1) options.skip = $scope.limit * ($scope.page - 1);
Project.query(options).$promise
.then(function(projects)
{
if (projects.data.length < 1) return;
$scope.projects = $scope.projects.concat(projects.data);
$scope.load();
});
};
$scope.load();
html
<tbody>
<tr ng-repeat="projects in data = (projects | filter:query:regex | orderBy:'name')">
<td>{{ projects.name }}</td>
<td>{{ projects.code }}</td>
<td>{{ projects.description }}</td>
<td>{{ projects.address }}</td>
<td>{{ projects.ProjectId }}</td>
<td><md-button class="md-icon-button"
ng-click="AddProject($event)"
aria-label="{{ 'action_edit' | translate }}">
<md-tooltip>{{ 'action_edit' | translate }}</md-tooltip>
<md-icon>edit</md-icon>
</md-button>
</td>
</tr>
</tbody>
Also, was muss ich tun, um diesen Fehler zu lösen, Entschuldigung für die Frage. Ich muss nur diese Probleme lösen. Ich brauche viele Stunden, um das zu lösen. aber kann immer noch nicht arbeiten. kannst du mir den code und teil zeigen muss ich ändern. –
Wie die Antwort besagt, ist 'projects.data' nicht definiert. Sie müssen also überprüfen, was die API zurückgibt. warum könnte es sein, dass es etwas undefiniertes zurückgibt, oder sogar es ist in Ordnung, wenn es eine Eigenschaft mit dem Namen 'data' erwartet (kannst du sicherstellen, dass es existiert?). – Pipetus
Sie müssen Ihre API für diesen Zweck überprüfen. –