管理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>
相关文章
|
2月前
|
存储 前端开发 Java
一篇文章带你搞懂Controller、Service等各层的功能与作用
本文将深入探讨这些controller.service等层的作用与功能,帮助读者更好地理解它们在软件开发中的重要性和运作原理。
1272 0
|
2月前
|
设计模式 前端开发 开发者
SpringMVC底层负责请求路由的模块是什么
SpringMVC底层负责请求路由的模块是什么
90 0
|
10月前
|
数据可视化 Java Spring
用Spring状态机轻松管理应用程序的状态转换
用Spring状态机轻松管理应用程序的状态转换
|
JSON 前端开发 API
统一处理controller层接口返回的数据
要对controller层的内容进行统一返回,需要用到 @ControllerAdvice ResponseBodyAdvice
386 0
|
12月前
|
Java uml
依赖和关联的对比和区别
依赖和关联的对比和区别
142 0
|
JSON Java 数据格式
SpringCloud和SprigBoot之间的依赖关系怎么看
SpringCloud和SprigBoot之间的依赖关系怎么看
jira学习案例70-状态提升,组合组件和控制反转3
jira学习案例70-状态提升,组合组件和控制反转3
58 0
jira学习案例70-状态提升,组合组件和控制反转3
jira学习案例69-状态提升,组合组件和控制反转2
jira学习案例69-状态提升,组合组件和控制反转2
57 0
jira学习案例69-状态提升,组合组件和控制反转2
jira学习案例73-状态提升,组合组件和控制反转6
jira学习案例73-状态提升,组合组件和控制反转6
54 0
jira学习案例73-状态提升,组合组件和控制反转6