条件动作逻辑应该放在哪里?
Where should conditional action logic go?
我正在开发一个使用 ember 的项目。条件逻辑可以放在 HTML 模板、控制器和定义函数的地方。我有一个只需要在全局变量为真时触发的操作。
<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 时偏离 global.x。控制器也折旧了。
我也可以作为参数传递:
CallThisAction(x){
if(x){
//do something
}
}
有没有更简洁的方法来做到这一点?理想情况下,这里的解决方案会很好:Feature Request
您的模板不应使用全局变量。最好将这样的逻辑存储在您的操作中:
actions: {
CallThisAction(){
if(!global || !global.x){
return;
}
// do something
}
}
我正在开发一个使用 ember 的项目。条件逻辑可以放在 HTML 模板、控制器和定义函数的地方。我有一个只需要在全局变量为真时触发的操作。
<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 时偏离 global.x。控制器也折旧了。
我也可以作为参数传递:
CallThisAction(x){
if(x){
//do something
}
}
有没有更简洁的方法来做到这一点?理想情况下,这里的解决方案会很好:Feature Request
您的模板不应使用全局变量。最好将这样的逻辑存储在您的操作中:
actions: {
CallThisAction(){
if(!global || !global.x){
return;
}
// do something
}
}