在 Ember.js HTMLbars 模板中输出控制器变量

Outputting controller variable in Ember.js HTMLbars template

我跟随 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 检查器中看到控制器 属性。

index.html文件不在应用范围内controller/route/template,ember-cli-document-title为您解决问题

如果您不想使用它,您可以创建一个 in-repo-addon 来使用类似 {{content-for 'document-title'}}.

的内容