管理controller之间的依赖关系

简介: 管理controller之间的依赖关系

在有路由嵌套的情况下,你可能需要在两个不同的controller之间通信。
按照惯例先做准备工作:

ember g route post
ember g route post/comments
ember g model post

比如下面的路由设置:

//  router.js

import Ember from 'ember';
import config from './config/environment';

var Router = Ember.Router.extend({
  location: config.locationType
});

Router.map(function() {
  this.route('blog-post');
  this.route('post', { path: '/posts/:post_id' }, function() {
    this.route('comments');
  });
});

export default Router;

对于这个路由配置生成的路由表请看Ember.js 入门指南之十三{{link-to}} 助手

如果用户访问/posts/1/comments。模型post就会加载到postController,并不会直接加载到commentsController。然后如果你想在一篇post中显示comment信息呢?

为了实现这个功能,可以把postController注入到commentController中。

//  app/controllers/comments.js

import Ember from 'ember';

export default Ember.Controller.extend({
    postController: Ember.inject.controller('post')
});

一旦comments路由被访问,postController就会获取控制器对应的model,并且这个model是只读的。为了能获取到模型post还需要增加一个引用postController.model

//  app/controllers/comments.js

import Ember from 'ember';

export default Ember.Controller.extend({
    postController: Ember.inject.controller('post'),
    post: Ember.computed.reads('postController.model')
});

最后可以直接在comment模板中显示模型postcomment的信息。

<h1>Comments for {{post.title}}</h1>
<ul>
    {{#each model as |comment|}}
        <li>{{comment.text}}</li>
    {{/each}}
</ul>
相关文章
|
4月前
|
存储 前端开发 Java
一篇文章带你搞懂Controller、Service等各层的功能与作用
本文将深入探讨这些controller.service等层的作用与功能,帮助读者更好地理解它们在软件开发中的重要性和运作原理。
1801 0
|
11月前
|
Java Spring
创建名为 'authFilterRegistration' 的bean时,该bean依赖于一个未满足的依赖关系
创建名为 'authFilterRegistration' 的bean时,该bean依赖于一个未满足的依赖关系
57 1
|
2月前
|
前端开发
领域驱动使用问题之领域驱动设计中聚合之间的依赖如何管理
领域驱动使用问题之领域驱动设计中聚合之间的依赖如何管理
|
4月前
|
存储 JavaScript
如果需要在组件之间共享一个`ref`,应该如何实现?
如果需要在组件之间共享一个`ref`,应该如何实现?
53 0
|
JSON Java 数据格式
SpringCloud和SprigBoot之间的依赖关系怎么看
SpringCloud和SprigBoot之间的依赖关系怎么看
jira学习案例68-状态提升,组合组件和控制反转1
jira学习案例68-状态提升,组合组件和控制反转1
58 0
jira学习案例68-状态提升,组合组件和控制反转1
jira学习案例73-状态提升,组合组件和控制反转6
jira学习案例73-状态提升,组合组件和控制反转6
60 0
jira学习案例73-状态提升,组合组件和控制反转6
jira学习案例69-状态提升,组合组件和控制反转2
jira学习案例69-状态提升,组合组件和控制反转2
65 0
jira学习案例69-状态提升,组合组件和控制反转2
jira学习案例70-状态提升,组合组件和控制反转3
jira学习案例70-状态提升,组合组件和控制反转3
64 0
jira学习案例70-状态提升,组合组件和控制反转3