Javascript 无法在EmberJS中的模板中获取外部JSON数据
我已经搜索了这个主题,尝试了多种方法,但到目前为止都无法解决我的问题,所以我创建了一个帐户以便学习:) 我正在学习EmberJS,我无法从EmberJS中的路由获取JSON数据以输出到实际模板。但是,路由中的Javascript警报会显示数据 我正在调用一个第三方API,该API通过http从外部获取域的WHOIS信息 JSON输出示例Javascript 无法在EmberJS中的模板中获取外部JSON数据,javascript,json,ajax,ember.js,ember-cli,Javascript,Json,Ajax,Ember.js,Ember Cli,我已经搜索了这个主题,尝试了多种方法,但到目前为止都无法解决我的问题,所以我创建了一个帐户以便学习:) 我正在学习EmberJS,我无法从EmberJS中的路由获取JSON数据以输出到实际模板。但是,路由中的Javascript警报会显示数据 我正在调用一个第三方API,该API通过http从外部获取域的WHOIS信息 JSON输出示例 { "status": [ "clientTransferProhibited https:\/\/icann.org\/epp#clientTra
{
"status": [
"clientTransferProhibited https:\/\/icann.org\/epp#clientTransferProhibited"
],
"updated_date": [
"2012-12-04T00:00:00"
],
"contacts": {
"admin": null,
"tech": null,
"registrant": null,
"billing": null
},
"nameservers": [
"adns1.apple.com",
"adns2.apple.com",
"nserver.apple.com",
"nserver2.apple.com",
"nserver3.apple.com",
"nserver4.apple.com",
"nserver5.apple.com",
"nserver6.apple.com"
],
"expiration_date": [
"2021-02-20T00:00:00"
],
"creation_date": [
"1987-02-19T00:00:00"
],
"raw": [
"\n Domain Name: APPLE.COM\n Registrar: CSC CORPORATE DOMAINS, INC.\n Sponsoring Registrar IANA ID: 299\n Whois Server: whois.corporatedomains.com\n Referral URL: http:\/\/www.cscglobal.com\/global\/web\/csc\/digital-brand-services.html\n Name Server: ADNS1.APPLE.COM\n Name Server: ADNS2.APPLE.COM\n Name Server: NSERVER.APPLE.COM\n Name Server: NSERVER2.APPLE.COM\n Name Server: NSERVER3.APPLE.COM\n Name Server: NSERVER4.APPLE.COM\n Name Server: NSERVER5.APPLE.COM\n Name Server: NSERVER6.APPLE.COM\n Status: clientTransferProhibited https:\/\/icann.org\/epp#clientTransferProhibited\n Updated Date: 04-dec-2012\n Creation Date: 19-feb-1987\n Expiration Date: 20-feb-2021"
],
"whois_server": [
"whois.corporatedomains.com"
],
"registrar": [
"CSC Corporate Domains, INC."
]
}
这是我的密码
routes/file.js
import Ember from 'ember';
export default Ember.Route.extend({
titleToken: "MyTitle",
model() {
$.ajax({
type: "GET",
url: "https://api.who.pm/apple.com",
dataType: "json",
success: function(jsonData) {
alert(JSON.stringify(jsonData));
return jsonData;
},
error: function(request, status, error) {
console.log("Error! " + request.responseText);
}
});
}
});
在我的templates/file.hbs
中,我尝试了各种方法来获得jsonData
输出,但是没有成功。我尝试了{{model}}
,{{{model.data}}
,以及其他一些事情。目前,我只是尝试在模板中获取数据输出
运行页面时,警报将成功启动
任何帮助都将不胜感激。
谢谢模型钩子应该返回承诺或实际数据,您什么也不返回
returnjsondata
返回成功函数,而不是模型挂钩。在调用成功钩子时,模型钩子已经返回
我强烈建议您了解javascript函数、回调和闭包。还要确保您理解此和承诺
要使用jQuery,您需要知道jQuery2.x.ajax()
将返回一个thenable,但这不是一个承诺。这在jQuery3.x中是固定的。所以现在请使用RSVP.resolve
:
model() {
return Ember.RSVP.resolve($.ajax({
type: "GET",
url: "https://api.who.pm/apple.com",
dataType: "json",
}));
}
你看过这里了吗:@Scottfaneti我刚刚看了一下,很抱歉我没有经验,但我不明白这些在这种情况下是如何应用的。我在我的主
应用程序.hbs中使用了{{outlet}}
,其他路线通过该应用程序显示,但不在此特定页面中显示。