ember.js - 获取控制器中某个 Ember 组件的值
问题描述
假设我有一个名为 X 的自定义组件。
<X>my value</X>
我现在想访问 X 控制器中的“我的价值”。我该怎么做?
解决方案
组件无权访问该内容。
该<X>
组件在您的示例中以块形式使用。支持块形式的组件将执行上下文返回给调用者。它{{yield}}
在其模板中标有关键字的位置执行此操作。此时,执行将返回给调用者。该组件无权访问在该插槽中运行的代码。
这类似于回调的概念:
{{has-block}}
您可以使用helper来检测调用者是否使用块形式。这类似于您可以在函数中检测到是否提供了回调。- 您可以使用 `{{yield}} 关键字上的位置参数将上下文传递给产生的块。这类似于执行带参数传入的回调。
- 您可以通过在模板中添加 silbings 在 yield 槽之前和之后渲染 DOM。这类似于在执行回调之前和之后执行代码。
- 您可以将 yield 块包装在 DOM 中。这类似于将回调传递给另一个被执行的函数。
- 但是您不能检查或改变调用者设置的内容作为块的内容。
该功能有助于分离关注点并在组件之间建立清晰的边界。如果您将其视为一种限制,那么您的应用程序中不同组件之间的界限很可能不够清晰。
推荐阅读
- firebase - 是否可以删除 currentUser firebase 身份验证用户?
- java - 所有 @Before 和 @After 场景方法都在场景执行之前被调用
- reactjs - 如果填写了 form.item 2,则禁用 form.item 1
- ansible - 如何逃跑?在 Ansible 任务中?
- git - 如何签出文件的先前版本但不覆盖 git 中的文件?
- firebase - 使用自定义的 uid 创建用户
- php - 如何在php中提交所有单选按钮的所有选定值?
- asp.net - ASP.NET Core 错误代码 = '0x80004005':80008082
- ipopt - 试图编译 HSL 以获得 IPOPT
- python - 如何使用openCV计算盒子的堆栈