gpt4 book ai didi

javascript - $http.post 在控制台中返回错误未定义

转载 作者:太空宇宙 更新时间:2023-11-04 02:32:05 25 4
gpt4 key购买 nike

我是 Angular 新手。我正在使用 Controller 从工厂获取数据,该工厂使用连接到 REST api 的 $http.get 进行填充:

videoModule.factory('myFactory', function($http){   
var factory = {};
factory.getStuff = function(success, error) {

return $http({method: 'GET', url: '/api/backup'});
};
factory.postStuff = function(stuff){

};
return factory;
});

这是我的 Controller 代码:

app.controller('myController', function($scope, $http, myFactory){
myFactory.getStuff().success(function(data, status, headers, config){
$scope.stuff = data;
console.log(data);

$scope.selectedStuff = function($scope, $http){
var selectedFile = data[0].File_Name;
var selectedDir = data[0].File_SubDir;

var pack = selectedDir + "/" + selectedFile;
console.log(pack);

var result = { File_Location: pack };
console.log(result);

$http.post('api/test', result).success(function(data, status, headers){
console.log("Selected Video Sent to /api/test");
});
};
}).
error(function(data, status, headers, config) {
console.log("ERROR", data, status);
});
});

.success(function()) 中的前两行工作正常 - 它们加载我可以用来绑定(bind)到 HTML 的 JS 对象。下一段代码完美运行。我的 View 有一个“ng-click=selectedStuff()”绑定(bind)。单击该元素时,模块会将结果(即 JS 对象 {File_Location: pack})记录到我的控制台。

但是,我在接下来的三行中遇到了麻烦。当我尝试将此对象发布到/api/test 时,我的开发工具中收到一条错误消息:

TypeError: Cannot read property 'post' of undefined at k.$scope.selectedVideo. 

我无法弄清楚为什么 $http 被认为是未定义的。有人遇到过这个问题吗?

最佳答案

那是因为 $scope.selectedStuff 需要两个参数 ($scope, $http)和在 ng-click=selectedStuff() 中,您没有发送任何参数,使 $http 在函数中处于未定义状态。

您可以从函数中删除参数,因为它们可以从全局范围中获取。

$scope.selectedStuff = function(){
var selectedFile = data[0].File_Name;
var selectedDir = data[0].File_SubDir;

var pack = selectedDir + "/" + selectedFile;
console.log(pack);

var result = { File_Location: pack };
console.log(result);

$http.post('api/test', result).success(function(data, status, headers){
console.log("Selected Video Sent to /api/test");
});
};

此外,我建议您考虑将 $scope.selectedStuff 定义引入 myFactory.getStuff() 成功回调之外。

关于javascript - $http.post 在控制台中返回错误未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25795064/

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