Javascript 无法在EmberJS中的模板中获取外部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

我已经搜索了这个主题,尝试了多种方法,但到目前为止都无法解决我的问题,所以我创建了一个帐户以便学习:)

我正在学习EmberJS,我无法从EmberJS中的路由获取JSON数据以输出到实际模板。但是,路由中的Javascript警报会显示数据

我正在调用一个第三方API,该API通过http从外部获取域的WHOIS信息

JSON输出示例

{
  "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}}
,其他路线通过该应用程序显示,但不在此特定页面中显示。