我在控制器中为分页定义了一些属性:
import Ember from 'ember';
export default Ember.ArrayController.extend({
limit: 1,
skip: 0,
pageSize: 1
}
});
我想在路线的limit
- 功能中访问model
,但我不知道如何。
import Ember from 'ember';
export default Ember.Route.extend({
model: function(params) {
console.log(this.get('controller').get('limit')) <- doesnt work for example
return this.store.find('post', {limit: 1,
sort:'createdAt desc'});
}
});
答案 0 :(得分:1)
也许您应该查看queryParams选项(http://emberjs.com/guides/routing/query-params/)。
使用查询参数,您可以将限制设置为您的网址中的查询参数,例如http://yourdomain.com/someroute?limit=15
。
您的控制器将变为:
export default Ember.ArrayController.extend({
queryParams: ['limit'], // Here you define your query params
limit: 1 // The default value to use for the query param
});
您的路线将成为:
export default Ember.Route.extend({
model: function(params) {
return this.store.find('post', {
limit: params.limit, // 'limit' param is available in params
sort:'createdAt desc'
});
}
});
<强>替代:强>
如果您不想使用查询参数,则另一种解决方案可能是在父路由的控制器之一中定义limit属性。通过执行此操作,您可以通过执行以下操作来访问模型挂钩中的属性:
this.controllerFor('parentRoute').get('limit');