我正在尝试显示数据库中的结果,但我收到此错误消息
TypeError: Cannot read property 'Result' of undefined
我正在使用AngularJS创建单页应用程序。结果位于services.js。有人可以帮我解决这个错误。
这是我的services.js代码:
(function () {
'use strict';
/** Service to return the data */
angular.module('MovieApp').
service('dataService', // the data service name, can be anything we want
['$q', // dependency, $q handles promises, the request initially returns a promise, not the data
'$http', // dependency, $http handles the ajax request
function($q, $http) { // the parameters must be in the same order as the dependencies
/*
* var to hold the data base url
*/
var urlBase = '/cm0665-assignment/server/index.php';
var loginUrl = '/cm0665-assignment/server/login.php';
/*
* method to retrieve courses, or, more accurately a promise which when
* fulfilled calls the success method
*/
this.getCategories = function () {
var defer = $q.defer(), // The promise
data = {
action: 'listCategory',
//subject: 'category'
};
$http.get(urlBase, {params: data, cache: true}). // notice the dot to start the chain to success()
success(function(response){
defer.resolve({
data: response.ResultSet.Result, // create data property with value from response
rowCount: response.RowCount // create rowCount property with value from response
});
}). // another dot to chain to error()
error(function(err){
defer.reject(err);
});
// the call to getCourses returns this promise which is fulfilled
// by the .get method .success or .failure
return defer.promise;
};
this.getMovies = function (categoryid) {
var defer = $q.defer(),
data = {
action: 'listFilms',
//subject: 'films',
category_id: categoryid
}
$http.get(urlBase, {params: data, cache: true}).
success(function(response){
defer.resolve({
data: response.ResultSet.Result,
rowCount: response.RowCount
});
}).
error(function(err){
defer.reject(err);
});
return defer.promise;
};
this.getActors = function (filmid) {
var defer = $q.defer(),
data = {
action: 'listActors',
film_id: filmid
}
$http.get(urlBase, {params: data, cache: true}).
success(function(response){
defer.resolve({
data: response.ResultSet.Result,
rowCount: response.RowCount
});
}).
error(function(err){
defer.reject(err);
});
return defer.promise;
};
this.getAllMovie = function () {
var defer = $q.defer(),
data = {
action: 'listFilms'
}
$http.get(urlBase, {params: data, cache: true}).
success(function(response){
defer.resolve({
data: response.ResultSet.Result,
rowCount: response.RowCount
});
}).
error(function(err){
defer.reject(err);
});
return defer.promise;
};
this.getSearchResult = function () {
var defer = $q.defer(),
data = {
action: 'search',
// term: terms
}
$http.get(urlBase, {params: data, cache: true}).
success(function(response){
defer.resolve({
data: response.ResultSet.Result,
rowCount: response.RowCount
});
}).
error(function(err){
defer.reject(err);
});
return defer.promise;
};
this.login = function (userID, passwd) {
var defer = $q.defer(),
data = {
//action: 'loginRob',
userid: userID,
password: passwd
};
$http.post(loginUrl, data). // notice the dot to start the chain to success()
success(function (response) {
defer.resolve({
data: response.status, // create data property with value from response
result: response,
user: response.username
});
console.log(response);
}). // another dot to chain to error()
error(function (err) {
defer.reject(err);
});
return defer.promise;
};
}
]
);
}());
ResultSet的每一行都显示此错误。这意味着每次我点击其他导航选项卡时,我都会显示此错误消息。我真的需要有人帮忙。提前谢谢。
答案 0 :(得分:0)
您收到此错误是因为您尝试取消引用undefined
的变量。在这种情况下,它看起来像是由语句response.ResultSet.Result
引起的。该错误表示response.ResultSet
为undefined
。
这意味着来自服务器的响应不是您期望的格式,或者服务器端代码中存在错误。