【发布时间】:2014-10-21 17:57:35
【问题描述】:
我一直在尝试创建一个 AngularJS 服务,该服务将从行为配置文件中获取数据。
我正在注入 $http 和 $q 服务以使我能够向 Behance API 发出请求。 我现在使用文字字符串作为 url 参数,看看如何解决我的问题。稍后我将重构我的代码以使其动态化。
behance.js 包含与我的 Angular 应用相关的服务的文件。
'use strict';
angular
.module('angularPortfolioApp')
.factory('behanceUserData', ['$q', '$http',
function($q, $http) {
var service = {
getUser: function(username) { //ignore the parameter in this function I plan on implementing that after I have my question resolved.
var d = $q.defer();
$http({
method: 'JSONP',
url: 'https://www.behance.net/v2/users/USERNAME?api_key=XXX'
}).success(function(data) {
d.resolve(data);
}).error(function(reason) {
d.reject(reason);
});
return d.promise;
}
};
return service;
}
]);
app.js 声明我的 Angular 应用程序所需的依赖项。
'use strict';
angular.module('angularPortfolioApp', ['ngResource']);
在 Chrome 开发工具控制台中,我收到 Uncaught SyntaxError: Unexpected token : 错误
在做了一些研究之后,我确实找到了一篇文章,指出 Angular 确实在 JSONP 请求的末尾添加了“:1”。
我仍然无法理解如何从 API (尤其是 behance API)获得成功的请求。我仍然可以在 Web 开发工具中看到结果,但由于我放入 .success 块中的内容从未运行,因此我将不胜感激。
同样的代码也可以在这个plunkerhttp://plnkr.co/edit/RZ42Y38BwKZBF2pGZJSR中看到
【问题讨论】:
-
我在你的 plunker 中没有看到任何错误。
-
请看我的回答。
标签: javascript angularjs