2016-04-22 57 views
0

在另一個SO問題中,已在塊(Page selector (block development))內使用該答案。但是,我們如何在儀表板中應用這個例子?concrete5(5.7)頁面選擇器事件 - 在儀表板中

變量「Concrete」和「ConcreteEvent」在管理員中似乎未定義。解決這個問題的最好方法是什麼?

實施例的代碼(使用5.7.x):

Concrete.event.bind('ConcreteSitemap', function(e, instance) { 
    Concrete.event.bind('SitemapSelectPage', function(e, data) { 
     if (data.instance == instance) { 
      Concrete.event.unbind(e); 
      alert("You've selected a page! " + data.cID); 
     } 
    }); 
}); 
+0

這沒有任何工作負載,讓我去尋找(因爲它爲你工作)。我註冊並要求我的JS資產與AssetList :: getInstance() - > register()&$ this-> requireAsset()。出於某種原因,這些獲得註冊的ABOVE events.js,app.js等等。所以我需要弄清楚的是,如何將它們向下移動(或其他移動)。我在我自己的requireAsset之前放了一個$ this-> requireAsset('core/app'),但這只是醜陋而不是方式。是否有可能在其他人之後要求我的資產? –

+0

這真的很奇怪,因爲在我的控制器中我根本沒有調用任何資產(除了我的擁有者) - 但它是一個包裝,也許這就是原因。 1時刻我測試 –

+0

好吧,你是對的:在單頁中它不起作用,但是它在一個包中...... sry不能幫你 –

回答

1

它看起來像Concrete.event總是被加載在儀表板頁面。如果你擔心加載順序,你有幾個選擇。

  1. 創建一個資產組並首先將事件js資產。如果您隨後包含而不僅僅是資產 concrete5應該首先管理加載事件。
  2. 使用jquery的$(function() { ... })這樣的onload事件。這會比你期望的時間稍晚一些,但它會在加載事件之後發生。
  3. Set the position of the asset to \Concrete\Core\Asset\Asset::ASSET_POSITION_FOOTER這將導致包含在頁腳,而不是頭部的JS允許的情況下JS總是在第一

希望幫助雅

相關問題