Byłem zajęty tym od dłuższego czasu i nie znalazłem rozwiązania. Problem polega na tym, że chcę, aby mój moduł został zbudowany z Require JS i Vue/Vuex, aby komunikować się ze światem zewnętrznym.Dostęp do metody lub zdarzenia Vue spoza aplikacji Vue
Nie chcę, aby skorzystać z tej
require(["myModule"],function(vm){
vm.$children[0].myMethod()
});
lub jQuery
// inside app
$(document).trigger("myEvent",payload);
// outside app
$(document).on("myEvent",myHandler);
To jest mój zwyczaj Element
<div id="app">
<customer-select></customer-select>
</div>
i moi main.js. Używam requirejs załadować moje moduły AMD
define(["./app2/app"], function (CustomerSelectApp) {
CustomerSelectApp.init("#app");
});
moje app.js
define([ "vue", "jquery", "webjars/nm-customer-select/nm-customer-select",
"css!bootstrap-css" ],
function(Vue, $, customerSelect) {
return {
init : function(targetElement) {
return new Vue({
el : targetElement,
components : {
customerSelect : customerSelect
}
});
}
};
});
Czy jest jakiś sposób, aby aplikacja/Component komunikować się ze światem zewnętrznym poprzez zdarzenie lub odniesienie to Przejdę?
W szczególności. Chcę, aby dokonać wyboru w moim Vue aplikacji i niech innej aplikacji na tej samej stronie wiedzieć, że jest to odbierać wybrane dane przetwarzać go dalej
Może to trochę za późno, ale co powiesz na wykorzystanie pamięci jako mediatora? coś jak sessionStorage lub localStorage? Problem polega na tym, że będziesz musiał sprawdzać localstorage, aby sprawdzić, czy są jakieś dane, więc możesz utworzyć globalną funkcję Window i wywołać ją wewnątrz komponentu za pomocą window.readData lub czegoś podobnego. –