javascript - 从组件 View 获取 block 内容

标签 javascript ember.js handlebars.js

我正在设计一个组件来帮助处理我们应用程序中的警报消息。目前,它被设计为显示从属性传入的内容、其中的 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/

相关文章:

javascript - JSF2.0 - CSS-Change 在生命周期中丢失

javascript - Controller 的属性未显示在模板上

javascript - 使用 Ember.js 获取元素数组

ember.js - 从 ember 组件发送多个参数

ruby-on-rails - 将 ActionCable 连接到不同的主机

javascript - EmberJS-在 Handlebars 模板内添加动态数据属性

javascript - Ember.js 中的 Bind-attr "for"属性

javascript - 递归地将 JavaScript 对象拟合到特定结构

javascript - 使用javascript在svg中动态添加外部对象

javascript - 使用 jQuery 将小数位数限制为 1