У меня возникли проблемы с порядком определения функций и экземплярами объектов, см: JSFiddleJavaScript: Порядок определения функций и экземпляров объектов
Я просто играл с идеей прямо сейчас, но я ударил эту стену и я не знаю, есть ли какое-либо простое решение проблемы. В основном у меня есть объект с некоторыми методами для другого объекта, но этот другой объект содержит ссылки на первый объект, поэтому независимо от того, какой порядок я создаю/определяю, я получаю сообщение об ошибке, потому что тот или другой не был загружен:
var router = {
update: function(event, from, to) {
window.location.hash = "#/" + to;
$("back-btn").disabled = fsm.can("back"); // *** And here I am referencing fsm
$("next-btn").disabled = fsm.can("next");
},
location: window.location.hash.substring(2),
}
var fsm = StateMachine.create({
initial: "intro",
events: [
// Next events and where to route based on our page
{ name: "next", from: "intro", to: "getname" },
{ name: "next", from: "getname", to: "welcome" },
{ name: "next", from: "welcome", to: "why" },
// We can't go "back" from the initial route
{ name: "back", from: "getname", to: "intro" },
{ name: "back", from: "welcome", to: "getname" },
{ name: "back", from: "why", to: "welcome" } ],
callbacks: {
onintro : router.update, //*** Here I am referencing the router object
ongetname: router.update,
onwelcome: router.update,
onwhy : router.update
}
});
Благодарим за любую помощь.
Возможный дубликат http://stackoverflow.com/questions/1450997/resolving-circular-dependencies-with-dependency-injection Кроме того, здесь хороший вопрос для проверки относительно require.js http://stackoverflow.com/questions/12639772/solving-circular-dependency-in-node-using-requirejs – mrk
Выполняете ли вы все это в рамках JSFiddle, или вы тестирование в другом месте? – daleyjem
Я тестирую в своем браузере без области JSFiddle – nak