每当您有反映在 url 中的全局状态时,您都可以使用 ember 路由器来管理该状态。
例如,假设您有一个嵌套在项目下的任务资源,例如:
App.Router.map(function() {
this.resource('project', { path: '/projects/:project_id' }, function() {
this.route('edit');
this.resource('tasks', function() {
this.route('new');
});
});
});
Ember 将使用 project_id url 段来查找您的模型并将其设置为 ProjectController 的内容。要从另一个控制器访问当前选定的项目,请使用needs数组声明依赖项并通过controllers属性访问它。
App.TasksController = Ember.ArrayController.extend({
needs: ['project']
});
// tasks/index.hbs
Project name: {{controllers.project.name}}
请参阅控制器需求说明