【问题标题】:How to access a "generated application controller"? in Ember如何访问“生成的应用程序控制器”?在余烬
【发布时间】:2015-04-19 10:43:29
【问题描述】:

在我的 HTML 文件中:

<script type="text/x-handlebars">
    //some code
    {{outlet}}
</script>

这一直是我所有模板的布局,但这没有我制作的任何控制器,因此 Ember 生成了一个。

我的问题是如何访问此车把的控制器?

生成的应用控制器official documentation 上说:

application 模板是默认模板,当 您的应用程序启动。

这是我希望能够访问的。我真正想做的只是添加它:

needs: ['someController']

PS:在找了一下之后,我尝试在控制器文件夹中创建一个文件“application.js”,但似乎不是这个。

【问题讨论】:

  • 需要一些细节。 (1) 是不是故意漏掉了script标签中的模板名? (2) 你说how to access the controller for this handlebar,后来你说The application template bla bla This is what I want to be able to access。完全看不懂
  • 我可能会混淆一些概念,因为我是 Ember 的新手,但我想要的是访问在我的应用程序启动时呈现的默认模板的控制器(如果它甚至存在或者是可访问)。
  • 真的很抱歉,看来我正在寻找的实际上是控制器文件夹中的 application.js 文件,我只是忘记包含它......

标签: javascript ember.js handlebars.js


【解决方案1】:
<script type="text/x-handlebars">
    //some code
    {{outlet}}
</script>

此脚本在 HTML 中定义应用程序的主模板。通常你需要为你的脚本命名,但这对于Application/index 不是必需的 - 请参阅documentation

也来自文档:“默认情况下,您的最顶层应用程序模板绑定到您的 ApplicationController:”

App.ApplicationController = Ember.Controller.extend({});

因此,如果您需要为应用程序定制一些东西,而不是使用自动生成的控制器,您必须创建一个显式的控制器;在那里你可以添加needs: ['someController']

【讨论】:

    【解决方案2】:

    在您的情况下,我认为您真正需要的是在控制器文件夹中创建一个 application.js 文件,如下所示:

    App.ApplicationController = Ember.ObjectController.extend({
        needs: ['someController'],
    });
    

    并且不要忘记将它包含在您的 html 文件中。

    【讨论】:

      【解决方案3】:

      您可以使用简单的IndexRoute 创建application.jsroute.js 文件。

      App = Ember.Application.create();
      
      App.IndexRoute = Ember.Route.extend({
          model: function() {
              return ['red', 'yellow', 'blue'];
          }
      });
      

      并用模板替换您的{{outlet}}

      <ul>
      {{#each item in model}}
        <li>{{item}}</li>
      {{/each}}
      </ul> 
      

      看看这个初学者例子:http://emberjs.jsbin.com/koziwatacu/1/edit

      官方文档:http://guides.emberjs.com/v1.11.0/templates/the-application-template/

      【讨论】:

      • 这似乎不是我想要的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-02
      • 2013-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-02
      相关资源
      最近更新 更多