我有一个相当复杂的Ember.js对象,我希望在页面加载时使用初始HTML / javascript发送(以避免单独访问服务器),但允许用户修改它。 / p>
所以我知道如何设置直接存在的FIXTURE数据,我知道如何设置RESTAdapter以便我可以加载/保存到服务器......我能同时做到吗?
似乎就像商店为其中一个设置了一次。对于一个数据源,我可以拥有多个商店吗?
谢谢!
答案 0 :(得分:4)
如果要从应用程序代码外部加载数据,可以执行以下操作:
在文档中添加预加载功能(在所有app.js和store.js下面):
<script>
window.preload = function(store) {
store.loadMany(App.Post,[10,11],[{ id: 10, content: "testcontent", author_id: 1 },{ id: 11, content: "testcontent2", author_id: 1 }]);
store.load(App.User,{ id: 1, username: "supervisor"});
}
</script>
在 ApplicationRoute 中,您可以将商店作为参数调用预加载功能。
App.ApplicationRoute = Ember.Route.extend({
setupController: function(controller, model) {
window.preload(this.store);
}
});
这样可以减少初始化应用程序时的请求量。
答案 1 :(得分:3)
无论您使用哪种适配器,都可以始终将数据直接加载到商店中。例如,
App.Store = DS.Store.extend({
init: function() {
this._super();
this.load(App.Post, {
id: 1,
text: 'Initial post.'
});
}
});
App.Post = DS.Model.extend({
text: DS.attr('string')
});
有关完整示例,请参阅this jsfiddle。