这里是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
是一个公开一些动作的组件,其中一个动作是previousPage
。 previousPage
只返回一个模型,然后我用它创建一些链接并与ember-keyboard一起使用。
由于link-to
未定义,我收到prev
无法构建路由的错误。该操作正在执行并在此with
块之上正确返回,因此我假设with
块是问题。
感谢您的帮助!
答案 0 :(得分:0)
我认为你理解这是错误的。 with
帮助程序不允许您执行操作。 (action navigationContainer.previousPage model)
的结果基本上是一个新的闭包函数,它将使用第一个参数navigationContainer.previousPage
执行model
,下一个参数是您为新函数提供的参数。
因此,如果您执行<button onclick={{action prv "bar"}}></button>
之类的操作,则会导致使用第一个参数navigationContainer.previousPage
和下一个model
执行函数"bar"
。
如果您想在模板中使用函数的结果,则必须使用计算属性。