我一直在尝试使用Angular JS进行搜索 但我得到了这个奇怪的错误:TypeError:undefined不是一个函数 它在.success
上这是我的代码:
<html ng-app="app">
<head>
<meta charset="utf-8">
<script src="angular.js"></script>
<script>
var app = angular.module('app', []);
app.controller('ctrl', function ($scope, $http){
$scope.url = 'fetch.php';
$scope.search = '';
$scope.postLink = function(){
$http.post($scope.url, { "data" : $scope.search}).succes(function(data, status){
console.log(data);
}).error(function(data, status) {
$scope.data = data || "Request failed";
$scope.status = status;
});
}
});
</script>
</head>
<body ng-controller="ctrl">
<input type="text" ng-model="search">
<input type="submit" ng-click="postLink()">
</body>
</html>
任何人都可以告诉我为什么它会在.succes上给我一个错误吗?我不允许在那里打电话吗?
提前致谢!
答案 0 :(得分:11)
拼写为success
。
$http
是基于承诺的,所以您也可以使用:
成功.then
,
.catch
失败和
在这两种情况下.finally
。
请参阅:
答案 1 :(得分:3)
succes
函数名称中存在拼写错误。尽管如此,success
和error
函数现在从Angular 1.6中删除,应该替换为标准的promise函数.then()
/ .catch()
。
此答案中的更多详细信息:Why are angular $http success/error methods deprecated? Removed from v1.6?
答案 2 :(得分:1)
$ http promises then
。
第二,你有一个拼写错误,它应该是success