我很努力地爲我的模型找到處理加載數據的確切模式。首先,我應該說我正在使用一個簡單的$.ajax
包裝來加載我的數據而不是Ember Data。模型或控制器應該在Ember JS中加載數據嗎?
看着this blog post from one of the Discourse developers,你可以看到他建議在模型上實現一個靜態方法,使用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;
}
);
}
});
另一方面,I found another blog post about handling data in Ember。這次建議在$.ajax
周圍放置一個包裝並從Controller進行呼叫。
App.booksController = Em.Object.create({
content: null,
populate: function() {
var controller = this;
App.dataSource.fetchBooks(function(data) {
controller.set('content', data);
});
}
});
這是一個偏好問題還是在MVC中有一個約定我應該在這裏跟隨?