管理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>
相关文章
|
3月前
|
存储 前端开发 Java
一篇文章带你搞懂Controller、Service等各层的功能与作用
本文将深入探讨这些controller.service等层的作用与功能,帮助读者更好地理解它们在软件开发中的重要性和运作原理。
502 0
|
7月前
|
Java Spring
创建名为 'authFilterRegistration' 的bean时,该bean依赖于一个未满足的依赖关系
创建名为 'authFilterRegistration' 的bean时,该bean依赖于一个未满足的依赖关系
35 1
|
8月前
|
数据可视化 Java Spring
用Spring状态机轻松管理应用程序的状态转换
用Spring状态机轻松管理应用程序的状态转换
|
11月前
|
JSON Java 数据格式
SpringCloud和SprigBoot之间的依赖关系怎么看
SpringCloud和SprigBoot之间的依赖关系怎么看
|
JSON 前端开发 API
统一处理controller层接口返回的数据
要对controller层的内容进行统一返回,需要用到 @ControllerAdvice ResponseBodyAdvice
369 0
|
消息中间件 领域建模 数据库
领域驱动设计对依赖的控制
领域驱动设计对依赖的控制
|
存储 Java Ruby
组件构建原则(一):组件
组件构建原则(一):组件
229 0
|
架构师 Java Maven
组件构建原则(二):组件聚合
组件构建原则(二):组件聚合
309 0
jasmine里不同it spec之间的测试隔离性
jasmine里不同it spec之间的测试隔离性
61 0
jasmine里不同it spec之间的测试隔离性
|
设计模式 开发框架 前端开发
【愚公系列】2021年12月 通用职责分配原则(五)-控制器原则(Controller Principle)
【愚公系列】2021年12月 通用职责分配原则(五)-控制器原则(Controller Principle)