我是ember的新手,现在我只想调用生成随机文本的api,并将该文本显示在页面上。我正在使用的API和特定对象是“ http://www.randomtext.me/api/lorem/ul-5/5-15”,它返回JSON响应。
应用程序/控制器/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开发人员标签中看到它。
这是我的app / templates / randomtext.hbs
<h1>Random Text</h1>
<p>test</p><button {{action "sendRequest"}}>testing</button>
按下按钮将发出xhr请求,该请求很可靠,但是我不知道如何获取json响应的text_out属性或显示它的任何部分。如何(尽可能简单)向外部api端点发出GET请求,并在ember应用程序的页面上显示响应?
最佳答案
您是从动作处理程序中返回的;但这不会在屏幕上呈现任何内容。您需要从模板到javascript文件进行绑定。请参见以下twiddle。我在{{randomText}}
中声明了application.hbs
。这绑定到randomText
控制器中的application.js
属性。最初它是未定义的;因此,不会显示任何文本。当您按下按钮时; application.js
中的动作处理程序运行。在动作处理程序中;使用randomText
函数将远程调用返回的数据设置为Ember.String.htmlSafe
属性(将返回的字符串格式化为html)。您可以将controller
中声明的属性直接绑定到相应的template
。如果使用route
代替controller
;您必须使用model
挂钩。我强烈建议您查看官方Ember Guide并在那里进行教程。