javascript - 如何从 JSON XHR 请求获取数据以在我的模板中使用?

标签 javascript json ember.js xmlhttprequest

我对 ember 很陌生,现在我只想调用一个生成随机文本的 api,并将该文本显示在页面上。我使用的 API 和特定 enpoint 是“http://www.randomtext.me/api/lorem/ul-5/5-15 ”,它返回 JSON 响应。

应用程序/ Controller /randomtext.js

import Ember from 'ember';

export default Ember.Controller.extend({
  ajax: Ember.inject.service(),
  actions: {
    sendRequest() {
      return this.get('ajax').request('http://www.randomtext.me/api/lorem/ul-5/5-15');
    }
  }
});    

这是发出 XHR 请求,并返回正确的 JSON 对象。我可以在 chrome 开发者选项卡中看到它。

这是我的应用程序/模板/randomtext.hbs

 <h1>Random Text</h1>

 <p>test</p><button {{action "sendRequest"}}>testing</button>

按下按钮会发出 xhr 请求,这是可靠的,但我不知道如何获取 json 响应的 text_out 属性,或显示它的任何部分。如何(尽可能简单)向外部 api 端点发出 GET 请求,并在我的 ember 应用程序的页面上显示响应?

最佳答案

您正在从操作处理程序中返回;但这不会在屏幕上呈现任何内容。您需要将模板绑定(bind)到 javascript 文件。请参阅以下twiddle 。我在 application.hbs 中声明了 {{randomText}}。它绑定(bind)到 application.js Controller 中的 randomText 属性。最初它是未定义的;因此不会呈现任何文本。当您按下按钮时; application.js 中的操作处理程序运行。在 Action 处理程序中;从远程调用返回的数据通过 Ember.String.htmlSafe 函数设置为 randomText 属性(将返回的字符串格式化为 html)。您可以直接将controller中声明的属性绑定(bind)到相应的template。如果你使用route而不是controller;您必须使用 model Hook 。强烈推荐你看官方Ember Guide并浏览那里的教程。

关于javascript - 如何从 JSON XHR 请求获取数据以在我的模板中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43350970/

相关文章:

javascript - 使用 meta-refresh 或 javascript 退出 iframe?

javascript - "Any"GraphQL 查询返回类型的数据类型

javascript - 如何使用 html 和 javascript 中的输入更改连接多个 id 以更改颜色

php - 使用 Php、Ajax、JSON 将动态记录保存在数据库中

node.js - 如何发送到亚马逊的Alexa Event Gateway?

javascript - JS : Replace quotes between an specific symbol

javascript - 使用 ember.js 2.0 的 ember cli 应用程序基础

javascript - JS - 在 JSON 文件中插入、删除和添加数据

javascript - 在 Ember 中设置值之前如何检查该值?

javascript - 如何在每个循环中更新模型对象