我正在编写一个相当简单的crud应用程序,但是,我似乎停留在编辑(编辑控制器)部分代码上。我有一个学生名单,我选择一个更新。但我收到错误“包含一个对象但得到一个数组的预期响应”。
但是当我检查元素并转到网络标签时,我看到了这个
这是我的代码。
var StudentManagement = angular.module('StudentManagement', ['ngRoute','ngResource','ui.bootstrap']);
StudentManagement.config(function ($routeProvider) {
$routeProvider
.when("/", {
templateUrl: "list.html",
controller: "HomeController"
})
.when("/add", {
templateUrl: "add.html",
controller: "AddController"
})
.when("/edit/:editId", {
templateUrl: "edit.html",
controller: "EditController"
})
.otherwise({
redirectTo: "/"
});
});
StudentManagement.factory('Student', function ($resource) {
return $resource('/api/Student/:id', { id: '@id' }, { update: { method: 'PUT' } });
});
StudentManagement.controller("HomeController",
function ($scope, $location, Student) {
$scope.search = function () {
$scope.students = Student.query();
};// end search
$scope.reset = function ()
{
$scope.search();
}// end reset function
$scope.search();
});
StudentManagement.controller("EditController",
function ($scope, $location, $routeParams, Student) {
// get the student given the specific id
var id = $routeParams.editId;
$scope.student=Student.get({id: id});
$scope.updateForm = function () {
Student.update({id:id}, $scope.student, function () {
$location.path('/');
});
}// end edit function
$scope.cancelForm = function () {
$location.path('/');
}// end cancel function
});
答案 0 :(得分:0)
您正在从服务器返回对象数组。
因此,您应该在资源定义中添加isArray : true
。
$resource('/api/Student/:id', { id: '@id' },
{ update: { method: 'PUT',isArray : true}
});
或
您可以从服务器
返回对象的对象如果您想使当前代码可行