0

백본 및 마리오 네트 j를 사용하는 응용 프로그램에서 작업 중입니다. 문제는 라우팅 문제입니다. 응용 프로그램 흐름을 통해 네비게이션이 제대로 작동하는 경우. 모듈 중 하나에서 페이지를 새로 고치면 백본 모듈이 시작되지 않습니다. URL이 #URL 인 모듈에 액세스하려고 시도하면 해당 모듈이 시작되지 않습니다. 나는 그것이 작동하지 않는 흐름 응용 프로그램을 통해 갈 때 여기 모듈이 #url로 시작하지 않음

는 이제 모듈

define(["app"], function (Splanner) { 
    Splanner.module("RegistrationModule", function (Registration, Splanner, Backbone, Marionette, $, _) { 
     Registration.startWithParent = false; 

     Registration.onStart = function() { 
      console.log('Module Start'); 
     }; 
     Registration.onStop = function() { 
      console.log('Module Stop'); 
     }; 
    }); 

    Splanner.module("RegistrationRouter", function (RegistrationRouter, Splanner, Backbone, Marionette, $, _) { 

     RegistrationRouter.Router = Marionette.AppRouter.extend({ 
      appRoutes: { 
       "newvisitor/registration": "visitorRegistration" 
      } 
     }); 

     var executeAction = function (controllerAPI, arg) { 
      Splanner.startModule("RegistrationModule"); 
      controllerAPI(arg); 
     }; 

     var API = { 
      visitorRegistration: function() { 
       require(["modules/visitor/registration/RegistrationController"], function (RegistrationController) { 
        executeAction(RegistrationController.showVisitorRegistration); 
       }); 
      } 
     }; 

     Splanner.on("visitor:registration:show", function (myVisitor) { 
      Splanner.navigate("newvisitor/registration"); 
      API.visitorRegistration(myVisitor); 
     }); 
     Splanner.addInitializer(function() { 
      new RegistrationRouter.Router({ 
       controller: API 
      }); 
     }); 

    }); 
    return Splanner.RegistrationRouter; 
}); 

코드입니다,하지만 난 #의 newvisitor/등록을 URL을 사용할 때 모듈이 시작되지 않습니다.

답변

0

이 설정은 내가 읽은 마리오 넷 책을 따라 내가 사용하는 것과 같습니다. 내 모듈에서 내가 사용할 수 있기를 원한다면, 초기화 한 후에 내 app.js 파일에이를 호출해야한다. 이것이 당신과 똑같은지 확실치 않지만, 이것을 시작할 때 모듈을 사용할 수 없으면 잡히게됩니다.

MyApp.on("initialize:after", function() { 
     if (Backbone.history) { 
     require([ 
      "apps/dashboard/dashboard_app", 
      "apps/server/server_app", 
      "apps/installations/installations_app", 
      "apps/system_check/system_check_app", 
      "apps/accounts/account_management_app", 

     ], function() { 
      Backbone.history.start(); 

      if (MyApp.getCurrentRoute() === "") { 
       MyApp.trigger("dashboard:show"); 
      } 
     }); 
     } 
    });