Событие модуля Coldbox умирает при вызове renderLayout

тл; др: renderLayout(layout="myLayout", view="alpha/bravo/viewFile") сборник законов alpha в качестве имени модуля, а не имени пакета в главном приложении, даже если выполнение кода находится в пакете, а не в модуле.

Как мне получить разрешение пути, чтобы быть последовательным при запуске обработчика напрямую или при вызове его через runEvent из модуля?


Я разместил это в гугл-группе CB, но потом подумал, что лучше спросить здесь.

Рабочий пример здесь: https://github.com/jinglesthula/cbModuleExample

Если вы запустите установку (я.gitignored папку Coldbox), то cd в /app папка и server start --rewritesEnable Вы можете посетить http://127.0.0.1:<whatever port>/example/admin/test/ajax чтобы увидеть это в действии.


Из примера:

/app/modules_app/example/handlers/admin/test.cfc -> ajax() звонки runEvent("admin.test.ajax")

/app/handlers/admin/test.cfc -> ajax() вызывает `renderLayout( layout = "layout.div", view = "admin/test/ajax")

"admin/test/ajax" обычно разрешает /app/views/admin/test/ajax.cfm, но в этом случае это решает /app/modules_app/admin/views/test/ajax.cfm,

Вы можете закомментировать строку 18 и раскомментировать строку 19 в /modules_app/example/admin/handlers/test.cfc чтобы увидеть обходной путь.

Вы также можете перейти к /admin/test/ajaxDirect в вашем браузере, чтобы увидеть, что renderLayout() вызов в нерабочем примере правильный.

Примечание: у меня есть this.viewParentLookup = true в моем ModuleConfig.cfc. Я попытался перезагрузить модуль с установленным на false, и я получил тот же результат.

0 ответов

Другие вопросы по тегам