如何仅在特定条件下绑定操作 [Ember.js]
How to bind action only under certain condition [Ember.js]
我只是想知道,有没有什么办法可以达到下面的目的。
<button class="{{unless publishable "button-disabled"}}" {{if publishable (action "publish")}}>Publish</button>
当然可以在action方法中完成。我只是认为如果可以在模板中完成它可以使代码更简洁。
注意:
- 我知道上面的代码不起作用。仅供说明之用。
- 我知道按钮可以使用
disabled
属性来实现。在我原来的作品中,它实际上是一个没有disabled
的<a/>
。为了 css 的目的,我需要将其保留为 <a/>
标签。
- 无论禁用与否,我都希望将按钮保留在页面中。这是一种网页约定。在这种情况下,当按钮被禁用时,用户将知道他一定遗漏了一些东西。
可以使用 {{mut}}
in combination with {{action}}
助手:
<button {{action (if publishable 'publish' (action (mut undefProp)))}}>Publish</button>
您可以在此 blog post.
中阅读有关此特定用例(mut
转换为函数)的更多信息
解释:
我们使用动作助手,我们将根据 if 条件计算传递给该助手的动作。
如果条件评估为真,我们 return 'publish'
这只是操作名称。
如果条件评估为 false,那么我们将传递不执行任何操作的操作 - 我们使用类似解决方法的方法:(action (mut undefProp))
.
我只是想知道,有没有什么办法可以达到下面的目的。
<button class="{{unless publishable "button-disabled"}}" {{if publishable (action "publish")}}>Publish</button>
当然可以在action方法中完成。我只是认为如果可以在模板中完成它可以使代码更简洁。
注意:
- 我知道上面的代码不起作用。仅供说明之用。
- 我知道按钮可以使用
disabled
属性来实现。在我原来的作品中,它实际上是一个没有disabled
的<a/>
。为了 css 的目的,我需要将其保留为<a/>
标签。 - 无论禁用与否,我都希望将按钮保留在页面中。这是一种网页约定。在这种情况下,当按钮被禁用时,用户将知道他一定遗漏了一些东西。
可以使用 {{mut}}
in combination with {{action}}
助手:
<button {{action (if publishable 'publish' (action (mut undefProp)))}}>Publish</button>
您可以在此 blog post.
中阅读有关此特定用例(mut
转换为函数)的更多信息
解释:
我们使用动作助手,我们将根据 if 条件计算传递给该助手的动作。
如果条件评估为真,我们 return 'publish'
这只是操作名称。
如果条件评估为 false,那么我们将传递不执行任何操作的操作 - 我们使用类似解决方法的方法:(action (mut undefProp))
.