【问题标题】:Outputting controller variable in Ember.js HTMLbars template在 Ember.js HTMLbars 模板中输出控制器变量
【发布时间】:2015-10-06 21:03:42
【问题描述】:

我跟随Ember Guides: Defining Your Routes 并在我的Ember 应用程序中添加了一个自定义索引路由;设置控制器标题属性:

// app/routes/index.js
import Ember from 'ember';

export default Ember.Route.extend({
  setupController: function(controller) {
    // Set the IndexController's `title`
    controller.set('title', 'Tagged! - home');
  }
});

然后我在app/index.html 中添加了标题的输出:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>{{title}}</title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    {{content-for 'head'}}

    <link rel="stylesheet" href="assets/vendor.css">
    <link rel="stylesheet" href="assets/tagged-ember.css">

    {{content-for 'head-footer'}}
  </head>
  <body>
    {{content-for 'body'}}

    <script src="assets/vendor.js"></script>
    <script src="assets/tagged-ember.js"></script>

    {{content-for 'body-footer'}}
  </body>
</html>

但是,我在浏览器标题栏中得到了{{title}},而不是预期的输出。为什么 HTMLbars 不输出变量?

我正在使用ember-cli(ember 1.13.3)并使用ember server 运行服务器。我可以在 ember 检查器中看到控制器属性。

【问题讨论】:

    标签: javascript ember.js htmlbars


    【解决方案1】:

    index.html 文件超出了应用程序控制器/路由/模板的范围,ember-cli-document-title 为您解决了问题。

    如果你不想使用它,你可以创建一个in-repo-addon 来使用{{content-for 'document-title'}} 之类的东西。

    【讨论】:

    • 说得有道理,这只是 Embers 开发速度超过文档的一个例子吗?
    • 文档达到标准(在某种程度上),这不是什么新鲜事,是人们寻找的常见功能,问题是应用程序控制器无法在应用程序模板之外输出任何内容application.hbs 并且应用程序模板通过{{content-for 'body'}} 标签包含在索引中。
    • 这太傻了——文档应该有实际工作的例子。谢谢。
    • 您正在尝试做的事情和指南中提到的内容是两件非常不同的事情,指南是正确的,他们在页面内设置了标题,您将使用 &lt;title&gt; 标签,指南中没有提及。
    • 糟糕,我真的看错了 - 在指南中,他们将其打印在 &lt;h1&gt; 标签中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多