Ember.js和connectOutlet模板上下文问题

时间:2012-09-02 17:10:46

标签: javascript ember.js

我正在尝试遵循Ember.js文档中的“Ember应用程序架构”指南,以便创建一个带有插座和路由的简化应用程序,但是有些东西一直在嗡嗡作响。

为什么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}}互动似乎没有工作,因为,猜测是什么,背景是不同的......

那我该怎么办?

1 个答案:

答案 0 :(得分: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>