我正在尝试遵循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}}互动似乎没有工作,因为,猜测是什么,背景是不同的......
那我该怎么办?
答案 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>