正在从ember.js中的控制器检索计算属性

Retrieving computed property from controller in ember.js

本文关键字:控制器 检索 计算 属性 ember js      更新时间:2023-09-26

我是ember.js的新手,通过检查ember.js应用程序的代码库来学习它。

这是一个博客应用程序,在路由/routes/posts.js中,代码从控制器获取两个计算属性

var currentPost = this.get('controller.currentPost');
var posts = this.get('controller.sortedPosts');

我知道ember.js推断了很多东西,所以我假设这个controller指的是控制器/controllers/posts.js,我查找并找到了属性sortedPosts的定义,但没有属性currentPost的定义,我插入了一行代码console.log(currentPost),我可以看到浏览器开发工具的控制台选项卡中输出了正确的值,但我不知道这个属性是在哪里定义的。

我试图在ember.js的官方文档中找到答案,但没有成功。我的问题是

  1. ember.js确实通过文件名将控制器推断为/controllers/posts.js
  2. ember是否足够聪明,可以自动将模型加载为currentPost

谢谢。

1)是的,如果文件存在,ember将推断控制器为/controllers/posts.js

2) Current Post是控制器的计算属性,它不会将模型加载为currentPost

注意:Ember控制器正在贬值,以支持可路由组件-因此,对于新应用程序,建议不惜一切代价避免使用控制器。

有关此问题和其他未来验证问题的更多信息,请参阅:https://gist.github.com/samselikoff/1d7300ce59d216fdaf97