我有一个视图帮助程序,它在 onOk() {
console.log("inside " + this.row.id);
this.deletedRow.emit(this.row);
// now close the modal
$('#myModal').modal('hide');
}
语句中包含一个块调用,以确保某些catch
被正确处理:
throw
我可以在我这样的苗条视图中使用帮助器
def if_reachable(&block)
catch(:unreachable) do
capture(&block)
end
end
重要的是,在我看来,我没有看到文字- if_reachable do
| I won't be printed cause something is not reachable
- throw(:unreachable)
。这就是使用Rails'的原因。 I won't be printed...
帮助者。
问题是,我也想在内联ruby中使用相同的帮助器:
capture
如果没有抛出/ this is also inside a slim template
- data = if_reachable { my_service.load_data }
,我希望返回值为:unreachable
。
问题是:当没有涉及模板时,
my_service.load_data
助手总是返回capture
并抛弃nil
的返回值
我已经考虑过的一些方法是
编写单独的帮助函数:知道何时使用哪个帮助程序会让人感到困惑。
将内联模板ruby代码包装到他们自己的帮助器方法中并使用my_service.load_data
:如果开发人员尝试使用帮助程序并且无法使用帮助程序,则会造成混淆单独的辅助方法
return
知道如何解决这个问题吗?是否可以检查块是来自模板还是纯红宝石?