【发布时间】:2016-02-18 09:46:31
【问题描述】:
尝试使用 Node 和 Angular 构建语言翻译消息传递应用程序。使用一个叫做 Yandex 的 API(谷歌翻译不是免费的)。 www.yandex.com
我不确定我是否有正确的方法,这是我第一次在我的项目中实现 API。
所以我有一个简单的表格
<div ng-controller="messageController">
<h4>Send Message</h4>
<form>
<textarea name="message" ng-model='message.msg'></textarea>
<input type="submit" value="Send" ng-click='sendMessage()' class="btn btn-info">
</form>
</div>
发送到消息控制器
myapp.controller('messageController', function($scope, messageFactory, $location, $rootScope) {
$scope.sendMessage = function(){
console.log("Inside sendMessage()" + $scope.message.msg)
messageFactory.translateMessage($scope.message.msg, function (data){
console.log(data);
})
}
})
这是使用我的 api 密钥进行 API 调用的工厂。
myapp.factory('messageFactory', function($http, $location) {
var factory = {};
factory.translateMessage = function(info, callback) {
console.log("Inside Message Factory-Traslate", info)
$http.get('https://translate.yandex.net/api/v1.5/tr.json/translate?key=<ENTER_KEY_HERE>&text='<info>'&lang=<ga>&[format=<plain>]').success(function (output){
callback(output);
})
}
return factory;
});
PS:我显然已经更换了这里的钥匙。
这是https://tech.yandex.com/translate/doc/dg/reference/translate-docpage/#JSON 之后的链接。
虽然感觉这不是我应该进行 API 调用的方式。
如何发出 API 请求并取回响应?
提前致谢。
【问题讨论】:
-
我可以知道这里的具体问题是什么吗?
-
您是否测试过您的解决方案?你有错误或有什么不对吗?
-
是的,我做到了,它根本没有返回任何数据。
-
你应该返回一个 promise(
$http.get已经返回一个)而不是回调。
标签: javascript angularjs api