gpt4 book ai didi

javascript - 创建新的 Angular $resource

转载 作者:行者123 更新时间:2023-12-02 15:39:03 25 4
gpt4 key购买 nike

我有一个页面,用于在我们的 Restful Web 服务中创建新资源。该页面的 Controller 如下:

appController.controller('AddCtrl', ['$scope', 'Person',
function($scope, $location, Person) {
$scope.person = new Person();
$scope.emailList = [];
$scope.add = function() {
$scope.emailList.push({email: $scope.email});
$scope.person.emailList = $scope.emailList;
$scope.person.$save();
};
}]);

我的服务,Person,看起来像这样:

appService.factory('Person', ['$resource',
function($resource, uuid){
return $resource(baseUrl + 'candidate/:uuid', {}, {
query: {method:'GET', isArray:true},
get: {method:'GET', params:{uuid: uuid}},
save: {method: 'POST'},
remove: {method: 'DELETE', params:{uuid: uuid}}
});
}
]);

但是,当我查看该页面时,我注意到以下行有一个错误:

$scope.person = new Person();

Person is not a function at new <anonymous> ...

我不确定为什么这是一个问题。之前工作得很好。我还尝试向服务添加创建方法:

appService.factory('Person', ['$resource',
function($resource, uuid){
var r = $resource(baseUrl + 'candidate/:uuid', {}, {
...
});
r.create = function() {
return $resource(baseUrl + 'candidate', {});
}
return r;
}
]);

但是,我在 Controller 中收到以下错误:

$scope.person = Person.create();

TypeError: Cannot read property 'create' of undefined at new <anonymous>

最佳答案

正如经常发生的那样,原因并不在于您要寻找的地方。问题出在这里:

appController.controller('AddCtrl', ['$scope', 'Person',
function($scope, $location, Person) {

您已为 Controller 指定了两个依赖项,但您的函数需要 3 个参数 - 最后一个参数为空,并且您的 Person 服务被分配为 $location。应该是:

appController.controller('AddCtrl', ['$scope', '$location', 'Person',
function($scope, $location, Person) {

假设您正在使用 $location。

您的资源中将遇到完全相同的问题 - uuid 始终为空。

关于javascript - 创建新的 Angular $resource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32722298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com