我正在努力寻找一个明确的模式来处理我的模型的加载数据。首先,我应该说我正在使用一个简单的$.ajax
包装器来加载我的数据,而不是 Ember 数据。
查看来自 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 中的约定?