Вот краткое изображение того, что я пытаюсь сделать:
var hostAppJs = {
callMe: function(){
alert("CALL ME FROM MAIN APP ");
}
}
var hookedInEngineJs = {
init: function(){
$('button').on('click', function(){
hostAppJs.callMe();
});
}
}
hookedInEngineJs.init();
По сути, я хочу, чтобы весь javascript хост-приложения был доступен для установленного движка. Когда весь javascript связан вместе для моего смонтированного движка, он должен выглядеть так, как показано выше, даже несмотря на то, что объект hostAppJs
javascript существует только в хост-приложении, а объект hookedInEngineJs
javascript существует только в смонтированном движке.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я нахожусь внутри смонтированного движка, он не может найти объект hostAppJs
, поэтому кажется, что он загружается неправильно для смонтированного движка.
Вот мой файл my application.js
для моего хост-приложения:
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
А вот мой файл application.js
для моего смонтированного двигателя:
//= require '/<absolutePathToHostApp>/assets/javascripts/application.js'
//= require_tree .
Итак, я предполагаю, что для моего смонтированного движка весь javascript из хост-приложения загружается и становится доступным для моего движка, а затем он загружает весь свой собственный javascript. Таким образом, я думаю, что javascript моего хост-приложения доступен для моего движка. К сожалению, это не работает.
Любая помощь приветствуется, спасибо!