我们常见的一个模板一个对应
代码如下 | 复制代码 |
App.PersonRoute = Ember.Route.extend({ model: function() { return App.Person.findAll(); }, setupController: function(controller, model) { controller.set('model', model); } }); |
应该说,这是 Ember.js 框架适用的情景。
但某些情况下,你希望 model 不仅仅是一种对象,而是多种对象集合,则可以有两种选择:
放弃 Ember.js,因为它已经不太适用这种较传统的页面
已经用了 Ember.js,骑虎难下
项目做到一半结果要放弃整个框架,只能说前期对 Ember.js 的适用情形了解不足。但走到这一步,要砍掉重来却不现实。
Ember.js 提供有 Ember.RSVP.hash 方法3,用法如下:
代码如下 | 复制代码 |
App.PersonRoute = Ember.Route.extend({ model: function() { return Ember.RSVP.hash({ // 这里 model 对象包含两种子对象 allPerson 与 task allPerson: App.Person.findAll(), task: $.get('http://www.zfanw.com/api/task') }); }, setupController: function(controller, model) { controller.set('model', model); } }); |
模板里使用调用 model.allPerson 与 model.task 即可。