我有通过调用句柄翻译我的Web API的后端,像这样的角度服务:
self.Translate = function (languageCode, keyword) {
var defer = $q.defer();
var uri = "api/translation/translate/" + languageCode + "/" + keyword;
apiService.Get(uri).then(function (translation) {
defer.resolve(translation.Text);
}, function (error) {
var msg = "Unable to translate keyword '" + keyword + "' for language code '" + languageCode + "'. Make sure that you can connect to the Web API and that the requested translation exists.";
loggerService.Error(self.Name, msg);
defer.reject(msg);
});
return defer.promise;
}
它被称为像这样:
var text = translationService.Translate("FR", "dateOfBirth");
这将返回:
date de naissance
然而,在接收端我得到这个(在执行console.log):
d {$$state: Object}
$$state: Object
status: 1
value: "date de naissance"
__proto__: Object
__proto__: d
哪些结果[object Object]
被显示,而不是翻译的文本。
基于以上你会认为,以下将工作:
var text = translationService.Translate("FR", dateOfBirth).value;
但它不,它返回undefined
。
任何想法是怎么回事,我该如何解决这个问题?谢谢!
PS:您可以找到完整的服务代码here(仅限脚本)。
感谢您的信息,但我没有看到任何区别。我知道角度翻译,发现它非常不可靠,翻译等不起作用的第一页加载(这是一个问题,因为我使用SPA)。 – Spikee
看不到有什么区别?你的意思是在改变代码后你会得到相同的错误?在所有需要ajax回报后,SPA有初始状态和完整状态是正常的。 – Icycool
因为您正在为每个关键字点击服务器,而角度翻译一次为语言加载一次,所以您应该观察到比使用当前代码的角度转换性能更差的性能。 – Icycool