0
我正在使用余烬的项目。有条件的逻辑可以放在HTML模板,控制器和函数定义的位置。我有一个操作只需要在全局变量为true时触发。条件操作逻辑应该去哪里?
<div {{action 'CallThisAction' on='click'}}>...</div>
在.hbs我可以做
{{#if global.x}}
<div {{action 'CallThisAction' on='click'}}>...</div>
{{else}}
<div>...</div>
{{/if}}
或在功能我可以
CallThisAction(){
if(global.x){
//do something
}
}
或我可以添加逻辑到控制器,以防止CallThisAction被称为偏置关闭全球。控制器也被折旧。
我还可以通过为PARAM:
CallThisAction(x){
if(x){
//do something
}
}
有一个更清洁的方式做到这一点?理想情况下,这里的解决方案会很好:Feature Request
我申请了答案。我试图更好地理解为什么,你能提供一个理由吗? – ajputnam
模板应该只存储所需的逻辑。它是视图层而不是控制器层。模板和组件应尽可能简单。关于如何处理操作的逻辑应该存储在控制器中。如果在没有设置global.x时不需要在模板中显示不同的HTML,但只想设置global.x时触发操作,则最好将global.x检查移至控制器并保持模板简单。 –
太棒了!这就说得通了。 – ajputnam