在with helper中执行操作

时间:2017-07-05 18:47:04

标签: ember.js htmlbars

这里是Ember的新手。我试图弄清楚如何执行一个动作,#with助手使用该动作的产品。以下是我的代码示例:

{{#navigation-container as |navigationContainer|}} {{#with (action navigationContainer.previousPage model) as |prev|}} {{link-to (t 'navigation.previous') (concat 'course-run.' prev.modelName) prev activeClass="o25" title=prev.title}} {{/with}} {{/navigation-container}}

navigation-container是一个公开一些动作的组件,其中一个动作是previousPagepreviousPage只返回一个模型,然后我用它创建一些链接并与ember-keyboard一起使用。

由于link-to未定义,我收到prev无法构建路由的错误。该操作正在执行并在此with块之上正确返回,因此我假设with块是问题。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我认为你理解这是错误的。 with帮助程序不允许您执行操作。 (action navigationContainer.previousPage model)的结果基本上是一个新的闭包函数,它将使用第一个参数navigationContainer.previousPage执行model,下一个参数是您为新函数提供的参数。

因此,如果您执行<button onclick={{action prv "bar"}}></button>之类的操作,则会导致使用第一个参数navigationContainer.previousPage和下一个model执行函数"bar"

如果您想在模板中使用函数的结果,则必须使用计算属性。