模型或控制器应该在Ember JS中加载数据吗?
Should the model or controller load data in Ember JS?
我正在努力寻找一个明确的模式,在哪里处理我的模型加载数据。首先,我应该说我正在使用一个简单的$.ajax
包装器来加载我的数据,而不是Ember data。
看看这篇来自一位Discourse开发人员的博客文章,你可以看到他建议在模型上使用reOpenClass
实现一个静态方法来加载相关数据。
App.RedditLink.reopenClass({
findAll: function(subreddit) {
return $.getJSON("http://www.reddit.com/r/" + subreddit + "/.json?jsonp=?").then(
function(response) {
var links = [];
response.data.children.forEach(function (child) {
links.push(App.RedditLink.create(child.data));
});
return links;
}
);
}
});
另一方面,我发现了另一篇关于在Ember中处理数据的博文。这一次,建议在$.ajax
周围放置一个包装器,并从控制器进行调用。
App.booksController = Em.Object.create({
content: null,
populate: function() {
var controller = this;
App.dataSource.fetchBooks(function(data) {
controller.set('content', data);
});
}
});
这是一个优先考虑的问题,还是有一个约定在MVC我应该遵循这里?
选择第一种方法。你提到的第二篇博文是2012年1月的,在《余烬》的世界中这是永恒的,不再是创造控制器的正确方式。您不再需要从头创建它们(使用Em.Object.create())。现在,Ember.js在你初始化应用程序时为你做了这些。如果我是你,我也会在加载/管理数据时更好地理解模型、路由和控制器的作用。从emberjs.com的指南开始。
无论如何,尽量远离2012年的博客文章,它们大多过时了。你也可以查看http://emberwatch.com的帖子,他们在保持emberjs信息的更新方面做得很好。
相关文章:
- 正在等待呈现图表,直到加载数据为止
- ng绑定和ng href问题.ng href未从控制器加载数据
- 单击按钮时加载数据
- 在reactjs组件中预加载数据
- Highcharts可以从服务器加载数据,但不能更新
- AngularJS promise在加载数据之前得到解决
- 在Knockout JS中搜索从DB加载数据的项目
- 如何在angular js中使用$emit后重新加载数据
- 构建多个图表时,HighCharts加载数据的速度较慢
- 加载初始网站后在后台加载数据
- ExtJS网格未从Ext.data.XmlStore加载数据
- 数据表 AJAX 筛选器重新加载数据
- select2 使用 AJAX 加载数据不能选择任何选项
- 在 Metro 风格应用中启动时加载数据
- 需要帮助使用 AJAX 和其他一些东西加载数据
- Vue 不加载数据
- 向右滚动加载数据
- 为SEO的数据绑定JS预加载数据
- mysql循环-预加载数据
- 无法使用JSON加载数据表