【发布时间】:2017-04-13 20:24:40
【问题描述】:
所以我创建了这个应用程序的一部分,它有一个模式窗口组件,当你将属性设置为 true 时应该打开它..
application.hbs 有这个:
{{#modal-window enabled=true title="Manage Admins"}}
{{/modal-window}}
在 modal-window.js 中,我有一个 closeModal 操作,它执行 this.set('enabled',false) 并且同样要打开它,您将其设置为 true。
应用底部有一个导航菜单,使用了不同的组件 help-link、admin-link 等。admin-link 也是一个有自己的 hbs 和 js 文件的组件。这就是应用程序的设计方式。在 index.hbs 的底部:
<div class="configs-list-footer">
{{help-link}}
{{admin-link action='showModal'}}
<div class="logout-link">
<a {{action 'invalidateSession'}} class="tv-icon">
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"><g transform="translate(1.000000, 1.000000)"><path d="M0.347826087,8 L10.7826087,8"></path><polyline id="Stroke-937" points="8 5.2173913 10.7826087 8 8 10.7826087"></polyline><path d="M1.03123478,4.83526957 C2.23471304,2.18831304 4.90253913,0.347617391 8.00027826,0.347617391 C12.2263652,0.347617391 15.6524522,3.77370435 15.6524522,7.9997913 C15.6524522,12.2258783 12.2263652,15.6519652 8.00027826,15.6519652 C4.88862609,15.6519652 2.21036522,13.7952696 1.01453913,11.1288348"></path></g></g></svg>
<span>Logout</span>
</a>
</div>
那里的动作调用 admin-link.js 文件中的动作,但似乎没有办法告诉 modal-window 从其自身的外部将启用设置为 true,这是任何程序的基本功能。
在互联网上搜索了几个小时后,我无法弄清楚如何在单击 admin-link 组件(基本上是一个锚标记)时简单地将 modal-window 的“启用”属性设置为 true ..
我已经找到了如何从 Index 路由调用动作,但是就像组件到组件一样,我无法弄清楚如何从 Index 路由更改 modal-window 的属性。
任何时候在线上的任何人询问如何做到这一点,他们都会遇到“组件应该被隔离并且不知道其他所有内容”,而没有明显的方法可以为 UI 做如此基本的事情。
我使用的是 Ember 2.12.1
【问题讨论】:
标签: ember.js