所以我创造了这个应用程序,有一个应该在设置启用真正的财产,以打开一个模式窗口组件的一部分。这如何从另一个组件设置Ember组件的属性?
application.hbs有这样的:
{{#modal-window enabled=true title="Manage Admins"}}
{{/modal-window}}
在模态-window.js我有一个动作closeModal,this.set('enabled',false)
,同样打开它,你把它设置为true。
有上使用不同的组件将帮助链接,管理链接等管理环节的应用程序底部的导航菜单也有自己的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>
有要求在管理,link.js文件的行动,但似乎有没有办法告诉模态窗口的操作来设置启用为true从本身的外部这是任何程序的基本功能。
在网上搜索了几个小时后,我不能为了我的生活找出如何在点击管理链接组件时简单地将模式窗口的'enabled'属性设置为true(这基本上是一个锚标签)..
我已经找到了如何调用从索引路线的动作,但后来就像使用组件组件我无法弄清楚如何模态窗口的属性从指数路径改变。
每当有人问网上如何做到这一点,他们都遇到了“部件应进行隔离,并没有意识到一切的”,没有明显的方式做事情如此基本的UI。
我用灰烬2.12.1
我有一个条件的模态窗口本身但这是一个好主意。然后,我可以从路由本身中处理该条件,而不是从组件中进行操作。仍然希望仅为了未来目的而看到我的问题的答案。我们的整个应用程序由Ember由外部承包商构建,我将不得不学习它。 –
所以我把这个代码在那里,但我不知道在哪里定义manageAdminsIsOpen ..我想我从指数路由的行动this.set(“manageAdminsIsOpen”)设置它,但我不能得到它的工作。 –
我对此感到困惑。我有application.hbs,application.js,index.js,index.hbs和其他很多文件,就像在官方的ember文档中我从来没有任何线索要把代码放在哪个文件中。我只是试图把每个JS文件中的管理员管理都在Ember扩展部分中作为对象的属性,或者仅在JavaScript外部的块中使用,无论我放在哪里,它都不起作用。只要将“manageAdminsIsOpen”放在该块中就可以定义它?它是否必须在某处明确定义? –