我正在设计一个组件来帮助处理我们应用程序中的警报消息。目前,它被设计为显示从属性传入的内容、其中的 block 内容或两者。举个例子:
{{#cos-alert message="This is the first line" displayBlock="all"}}
This is the second line
{{/cos-alert}}
将渲染:
This is the first line
This is the second line
我的示例 Handlebars 模板:
{{message}}<br/>
{{yield}}
但是,有时消息属性绑定(bind)到 View 中的属性,这会导致它为空。我们想要检测是否有 block 内容,如果有我们想要显示它。如果没有,我们希望使用 isVisible 属性隐藏组件,直到有内容可显示。
但是,我还没有找到一种方法来检测是否存在 block 内容。我可能会遗漏一些东西,但经过一段时间的搜索后我什么也没找到。是否可以从组件 View 中获取yield的值?
最佳答案
要检查是否有消息
,请检查message
属性。
要检查是否有模板,请检查 template
属性。
看here .
这可能是您需要检查是否有模板的内容:
hasTemplate: Em.computed.bool('template')
关于javascript - 从组件 View 获取 block 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24367620/