我想向服务器发出请求,根据用户点击的内容(最近,趋势等)获取大量新闻文章。我希望能够在我等待来自API的响应时首先加载页面并显示加载栏。我拥有的,虽然它可以工作并返回我需要的JSON数据,但是在加载任何内容之前,它将等待响应从服务器返回。到目前为止,这就是全部:
我想要实现的目标如下:加载一个空的对象数组,然后逐步对文章进行API调用(比如说从这个小时开始抓取所有文章,然后是最后一小时,然后是前一小时,等等每当我检索文章填充视图时(我假设我可以以某种方式将它们注入控制器中)但是我在Emberisms上迷失了关于如何添加到该对象数组的信息。我想我需要创建一个ArrayController,然后在所述数组中创建一个模型,然后调用一个函数添加到它,但正如我所说,我已经迷失了如何动态添加项目到该控制器
App = Ember.Application.create();
App.Router.map(function() {
this.resource('today');
});
App.TodayRoute = Ember.Route.extend({
model: function() {
return $.getJSON('/today');
}
});
详细说明我的问题的推理 - 我很困惑如何用ember来解决这个问题。我很熟悉如何使用jquery做这样的事情,但是我正在尝试学习框架,并且在最初知道两者之间的分工是什么时会遇到一些麻烦。我知道实际的AJAX请求应该是jquery,但我想在Ember中尽可能多地做。如果这是应该由jquery做的事情,那么那也没关系!
答案 0 :(得分:0)
getJSON方法看起来有一个你可以使用的成功的回调函数,这样的事情可能吗?
App.TodayRoute = Ember.Route.extend({
model: function() {
$.getJSON('/today', function(data) {
// hide loading here
/ data is the JSON returned
});
}
});
答案 1 :(得分:0)
我找到了解决方案 - 就像使用ember一样,它非常简单。我使用了一些空白夹具数据,然后将控制器定义如下。
App.ArticleRoute = Ember.Route.extend({
model: function() {
return App.Article.find();
}
})
然后在页面加载时,我调用一个围绕
的方法App.Article.createRecord({
// Attributes, pulling from the returned JSON
})
简单! :)