1

我正在尝试遵循 Ember.js 文档中的“Ember 应用程序架构”指南,以便制作一个带有插座和路由的 simpla 应用程序,但有些事情一直困扰着我。

为什么 ember 路由器将控制器设置为模板的数据上下文,而不是视图对象?这搞砸了一切。例如,如果由于 URL 更改而必须呈现以下模板并将其附加到插座:

<script data-template-name="feed_template" type="text/x-handlebars">
    <h1>The feeds<h1>
    {{this}}
    {{#each items}}
      <a href="#" {{action "onClick"}}>test</a>
    {{/each}}
  </script>

模板的数据上下文是一个控制器,而不是一个视图对象。还是可以的,但是,现在 {{action}} 交互似乎都不起作用,因为,你猜怎么着,上下文不同......

那我该怎么办?

4

1 回答 1

1

从 ember-1.0.pre 版本开始,操作的上下文已更改为路由器。因此,默认情况下,您的 onClick 操作将由路由器处理。要将其更改为视图,您必须在操作上显式设置目标或设置controller.target属性。要将视图设置为操作的目标:

<script data-template-name="feed_template" type="text/x-handlebars">
    <h1>The feeds<h1>
    {{this}}
    {{#each items}}
      <a href="#" {{action onClick target="view"}}>test</a>
    {{/each}}
</script>
于 2012-09-02T20:49:46.880 回答