javascript - 如何从 Ember 应用程序模板中的路由访问数据?

标签 javascript ember.js ember.js-2

我正在关注 Ember 2.3 的文档,但似乎无法在任何地方找到一些非常基本的东西:如何访问主模板内路由模型 Hook 提供的值:application.hbs?

routes/client.js

// ...
export default Ember.Route.extend({
    model() {
        return {
            navigation: [
                {
                    title: "Projects",
                    link: "projects"
                },
                {
                    title: "My Specifications",
                    link: "specs"
                }
            ]
        }
    }
});

templates/application.hbs

<nav>
   {{#each navigation as |navItem|}}
      <li>{{#link-to navItem.link}} {{navItem.title}} {{/link-to}}</li>
   {{/each}}
</nav>
{{outlet}}

现在,导航对象可供路由模板 (client.hbs) 访问,但不能供应用程序模板访问。

最佳答案

这是如何完成的(除非 ember 在未来的版本中提出更好的方法):

routes/client.js

// ...
export default Ember.Route.extend({
    setupController() {
        this.controllerFor('application').set('navigation', ["nav1", "nav2"]);
    }
});

谢谢 Ivan 的回答!

关于javascript - 如何从 Ember 应用程序模板中的路由访问数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35182650/

相关文章:

javascript - 在表单中创建输入的按钮出现问题

ember.js - 在 ember 数据中建模没有 id 的对象

ember.js - Ember 将回调传递给服务 - 未定义 this

javascript - tsconfig.json中的incremental是什么意思?

javascript - 加载另一个具有相同功能的图像会卸载另一个图像

javascript - 动态宽度测量 : ReactJS/NodeJS & HTML/CSS

Ember.js数据如何清除数据存储

ember.js - Handlebars - 将 Handlebars 编译后的代码反编译为 Handlebars 模板

javascript - Ember js 2.0 将计算属性从 Controller 传递到组件

javascript - Ember 将通用代码的数据(例如通知、导航栏上的用户个人资料)放置在何处