【问题标题】:Retrieving computed property from controller in ember.js从 ember.js 中的控制器检索计算属性
【发布时间】:2015-11-09 17:29:55
【问题描述】:

我是 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 的定义,但是没有属性@ 的定义987654326@,我插入了一行代码console.log(currentPost),我可以看到在浏览器开发工具的控制台选项卡中输出了正确的值,但我不知道这个属性是在哪里定义的。

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

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

谢谢。

【问题讨论】:

    标签: javascript ember.js


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 感谢您确认第一个问题。至于第二个,我在控制器中找不到那个属性currentPost的定义,这个属性可以在别的地方定义吗?还是 ember.js 隐式定义的?
    • 您会发布您正在使用的代码的链接吗? (假设它是一个 git repo)
    • /routes/posts.js 第 39,40 行检索属性。 controllers/posts.js 第 72 行是 sortedPosts 的定义。我找不到 currentPost 但它仍然有效
    • 整个仓库的链接。否则我只是猜测。
    • 设置在routes/posts/post.js第52行
    猜你喜欢
    • 2014-06-04
    • 2020-12-10
    • 2013-06-29
    • 2013-10-13
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    • 2014-05-26
    • 1970-01-01
    相关资源
    最近更新 更多