我想做一个REST调用来更新数据,我已经完成了一个GET请求来填写表单,当我点击更新按钮时,我想发送和PUT调用而不是我得到类型错误。
以下是代码:
// service.js
someservice.factory('update', function($resource) {
return $resource(connectionString + 'update', {}, {
put: {
method: "PUT",
isArray:
'Content- false,
headers: {Type': 'application/json',
'cache-control': 'no-cache',
'Pragma': 'no-cache',
'sessionId': gv.sessionId
}
}
})
})
// companyCtrl.js我已在控制器依赖项中包含更新工厂
$scope.btnUpdate = function() {
console.log("asd");
update.put({}, {
'data': $scope.data
}, function(data){
if(data.success){
console.log("success");
}
else{
console.log("faliure");
}
})
}
在我的视图中,我有按钮,其中ng-click =“btnUpdate()”
console.log记录“asd”所以一切都已连接。
有一件事可能需要解决这个问题,我正在使用ui-router并在我的状态配置中包含控制器,如下所示:
.state('admin.company', {
url: "/company/{_id}",
templateUrl: "./views/partials/company.html",
controller: "companyCtrl"
错误堆栈如下:
TypeError: undefined is not a function
at Scope.$scope.btnUpdate (http://localhost:3000/dist/js/app.min.js:1:6680)
at http://localhost:3000/libs/angular/angular.js:10836:21
答案 0 :(得分:0)
问题在于工厂依赖性,我删除了一个依赖项,现在一切正常。
答案 1 :(得分:-1)
那是整个companyCtrl.js吗?您实际上没有定义名为“companyCtrl”的函数或在应用程序中将其注册为控制器。如果您将companyCtrl.js更改为以下内容,则应该修复它。
function companyCtrl($scope) {
$scope.btnUpdate = function() {
console.log("asd");
update.put({}, {
'data': $scope.data
}, function(data){
if(data.success){
console.log("success");
}
else{
console.log("faliure");
}
})
}
}