concrete5(5.7)页面选择器事件 - 在仪表板中
问题描述:
在另一个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);
}
});
});
答
它看起来像Concrete.event
总是被加载在仪表板页面。如果你担心加载顺序,你有几个选择。
- 创建一个资产组并首先将事件js资产。如果您随后包含组而不仅仅是资产 concrete5应该首先管理加载事件。
-
使用jquery的
$(function() { ... })
这样的onload事件。这会比你期望的时间稍晚一些,但它会在加载事件之后发生。 -
Set the position of the asset to
\Concrete\Core\Asset\Asset::ASSET_POSITION_FOOTER
。这将导致包含在页脚,而不是头部的JS允许的情况下JS总是在第一
希望帮助雅
这没有任何工作负载,让我去寻找(因为它为你工作)。我注册并要求我的JS资产与AssetList :: getInstance() - > register()&$ this-> requireAsset()。出于某种原因,这些获得注册的ABOVE events.js,app.js等等。所以我需要弄清楚的是,如何将它们向下移动(或其他移动)。我在我自己的requireAsset之前放了一个$ this-> requireAsset('core/app'),但这只是丑陋而不是方式。是否有可能在其他人之后要求我的资产? –
这真的很奇怪,因为在我的控制器中我根本没有调用任何资产(除了我的拥有者) - 但它是一个包装,也许这就是原因。 1时刻我测试 –
好吧,你是对的:在单页中它不起作用,但是它在一个包中...... sry不能帮你 –