【发布时间】:2017-12-09 13:44:03
【问题描述】:
这里是 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 一起使用。
我收到一条错误消息,指出由于 prev 未定义,link-to 无法构建路由。该操作正在执行并在此 with 块上方正确返回,因此我假设 with 块是问题所在。
感谢您的帮助!
【问题讨论】:
-
可以用下面的
{{#with (action navigationContainer.previousPage model) as |prev|}}代码sn-p创建一个动作;但是prev.modelName是什么意思?prev本身是一个函数,它不包含名为modelName的属性。该动作不会在具有此声明的模板中自行运行;您需要将其传递给组件并在 js 文件中执行它。如果我的理解是正确的,那么即使不是不可能,您想要实现的目标也会令人困惑。你能说出你想要达到的目标吗?您是在尝试在模板中执行操作还是某事。还有吗?