您好我有一个简单的问题,但我遇到了问题。我编辑了一些我在网上找到的代码。我试图利用Angular http服务来检索JSON数据,但它似乎没有工作
var app = angular.module('app', []);
app.controller('MainCtrl', function($scope, $http) {
$http.get('https://www.dropbox.com/s/325d678ksplb7qs/names.json')
sucess(function(data, status, headers, config) {
$scope.posts = data;
}).
error(function(data, status, headers, config) {
// log error
});
});
我的代码示例如下
答案 0 :(得分:1)
<强> TL;博士强>
应该是这样的:
var app = angular.module('app', []);
app.controller('MainCtrl', function($scope, $http)
{
$http.get('https://www.dropbox.com/s/325d678ksplb7qs/names.json')
.success(function(data, status, headers, config)
{
$scope.posts = data;
})
.error(function(data, status, headers, config)
{
// log error
});
});
即。您在.
之前错过了一个点(success
)而您的success
输入错误(您键入sucess
)。
<强>原始强>
您的代码应如下所示:
// Simple GET request example :
$http.get('/someUrl').
success(function(data, status, headers, config) {
// this callback will be called asynchronously
// when the response is available
}).
error(function(data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
如docs中所述。
你的是这样的:
$http.get('https://www.dropbox.com/s/325d678ksplb7qs/names.json')
sucess(function(data, status, headers, config) {
如果你在成功之前错过了一个点(。),你的成功拼写错误(你的成功)。
复制现有的演示,直到您确定它们是如何设置的,这是不错的做法。此外,使用您的开发人员工具来捕获这样的简单错误。
您的Dropbox调用也可能无效,但如果您相应地修改了代码,那么错误方法应该能够捕获它并且您应该能够看到错误。
答案 1 :(得分:1)
拼写错误sucess
应为success
<强> CODE 强>
var app = angular.module('app', []);
app.controller('MainCtrl', function($scope, $http) {
$http.get('https://www.dropbox.com/s/325d678ksplb7qs/names.json')
.success(function(data, status, headers, config) {
$scope.posts = data;
}).
error(function(data, status, headers, config) {
// log error
});
});
答案 2 :(得分:1)
您应该使用服务:
json.service('getJson', ['$http', function ($http) {
var promise = null;
//return service
return function () {
if (promise) {
return promise;
} else {
promise = $http.get('url');
return promise;
}
};
}]);
function MainCtrl($scope, getJson) {
getJson().success(function (data) {
$scope.json = data;
});
};
请记住在控制器中注入服务名称。