如何解决获取控制器中Ember组件的值
假设我有一个名为X的自定义组件。
<X>my value</X>
我现在想访问X控制器中的“我的值”。我该怎么做?
解决方法
某个组件无权访问该内容。
在您的示例中,<X>
组件以块形式使用。支持块形式的组件将执行上下文返回给调用者。这样做是在其模板中标有{{yield}}
关键字的地方。那时,执行将返回给调用者。该组件无权访问在该插槽中运行的代码。
这类似于回调的概念:
- 您可以使用
{{has-block}}
帮助程序来检测呼叫者是否正在使用阻止形式。这类似于您可以在函数中检测到是否提供了回调。 - 您可以使用关键字{{yield}}上的位置参数将上下文传递到yielded块。这类似于执行带有参数传递的回调。
- 您可以通过在模板中添加填充来在yield slot之前和之后渲染DOM。这类似于在执行回调之前和之后执行代码。
- 您可以将yield块包装在DOM中。这类似于将回调传递给另一个执行的函数。
- 但是您不能检查或更改调用者设置为该块内容的内容。
该功能有助于分离问题并在组件之间建立明确的界限。如果您将其作为限制,则很可能您的应用程序中不同组件之间的边界不够清晰。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。