Javascript 从ember.js中的控制器加载数据
我想实现一个向我展示最新帖子的系统。为此,我不想使用来自用户的索引操作,因为这已经用于另一个post函数,而是一个“最新”操作。它通过Javascript 从ember.js中的控制器加载数据,javascript,json,ember.js,ember-data,loading,Javascript,Json,Ember.js,Ember Data,Loading,我想实现一个向我展示最新帖子的系统。为此,我不想使用来自用户的索引操作,因为这已经用于另一个post函数,而是一个“最新”操作。它通过{render“postnestest”}调用显示在索引路由上。出于抽象原因,我更愿意在PostNewestController或PostNewestView中加载数据,而不是在路由中加载数据。 我尝试了两个想法来实现这一点,但迄今为止都没有成功: 创建自定义适配器并添加findNewest()方法:尝试调用控制器的init方法时,遗憾地没有找到findNewe
{render“postnestest”}
调用显示在索引路由上。出于抽象原因,我更愿意在PostNewestController或PostNewestView中加载数据,而不是在路由中加载数据。
我尝试了两个想法来实现这一点,但迄今为止都没有成功:
- 创建自定义适配器并添加
方法:尝试调用控制器的init方法时,遗憾地没有找到findNewest()
方法findNewest()
- 将请求直接写入init方法,然后使用
更新:数据是成功的请求。但是,我不知道如何从模板访问数据并设置控制器的内容store.loadMany(payload)
我也有这个问题。只需在控制器中添加
init
,并定义您想要到达的模型
在控制器中
App.PostRecentController = Ember.ArrayController.extend({
init: function() {
return this.set('content', App.Post.find({
recent: true
}));
}
});
在模板中
{{#each post in content}}
{{post.body}}
{{/each}}
我建议您检查余烬扩展,它将为您提供一个很好的命名方法,并查看是否缺少所有内容。我解决了问题。Post模型与另一个模型具有belongsTo关系。此关系不是由Ember加载的,因此在stream()方法中,我必须手动加载此关系。然后一切按预期进行。首先感谢您的回答。我设法解决了这个问题,就像在那里介绍的那样。我现在面临的问题是,当点击一个帖子时,模型不起作用。我认为问题在于我返回的是一个数组而不是一个模型。当你点击帖子时,你想做什么?只需按照每个URL手动加载PostShowRoute时显示它即可。我使用
{{#linkTo“post.show”post}
。URL是正确生成的,但点击页面后仍然是空白的。如果是“空白”,则意味着它是空的,那么模板是空的,或者你在工作,或者你在错误的模板上工作。这很奇怪,因为当在浏览器中键入相同的URL并击中返回(或者简单地刷新空白页)。内容已正确加载和显示。post.show模板不是空的。。。
{{# if App.Auth.signedIn}}
{{ render "dashboard" }}
{{else}}
{{ render "GuestHeader" }}
{{/if}}
{{ render "postStream" }}
{{#each post in model}}
<li>{{#linkTo 'post.show' post data-toggle="tooltip"}}{{post.name}}{{/linkTo}}</li>
{{else}}
Nothing's there!
{{/each}}
App.PostShowRoute = Ember.Route.extend({
model: function(params) {
return App.Post.find(params.post_id);
},
setupController: function(controller, model) {
controller.set('content', model);
},
});
App.PostRecentController = Ember.ArrayController.extend({
init: function() {
return this.set('content', App.Post.find({
recent: true
}));
}
});
{{#each post in content}}
{{post.body}}
{{/each}}