所以我創造了這個應用程序,有一個應該在設置啓用真正的財產,以打開一個模式窗口組件的一部分。這如何從另一個組件設置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」放在該塊中就可以定義它?它是否必須在某處明確定義? –