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

标签 javascript ember.js

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

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

<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>

模板的数据上下文是 Controller ,而不是 View 对象。这仍然有点好,但是,现在 {{action}} 交互似乎都不起作用,因为,猜猜看,上下文不同了......

那我该怎么办?

最佳答案

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

<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>

关于javascript - Ember.js 和 connectOutlet 模板上下文问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12238046/

相关文章:

javascript - 在 kineticjs 中导出阶段的最佳方法

javascript - 这个 $interval 有什么问题吗?仅在页面加载时触发

javascript - ember-cli 中的嵌套资源,困惑的应用程序结构

ember.js - Ember 事件,用于最佳丢弃同一 Route 之间的更改

javascript - Ember.js (v 1.13) - 从组件切换按钮的 CSS 类

javascript - 如何在主干或 ember 或任何 javascript MVC 框架中编写简单 jQuery AJAX 调用的等效项,以便我可以对其进行单元测试

javascript - 如何使用 javascript 而不是 HTML 5 设置表单按钮的范围

javascript - jquery如何获取点击了哪个链接

javascript - 表单验证清除 JavaScript 字段

javascript - 将 ajax 调用的响应存储在 ember 中