2012-08-22 2 views
2

새 Project 객체를 성공적으로 저장 한 후에 다른 뷰로 전환하는 방법은 무엇입니까? 유효성 검사가 통과되면 @transaction을 커밋하고 프로젝트 인덱스 뷰로 전환하고 싶습니다.Ember.js 컨트롤러에서 라우터 전환을 처리하는 방법은 무엇입니까?

컨트롤러 :

DA.ProjectsController = Em.ArrayController.extend 
    createProject: (project) -> 
    @transaction = DA.store.transaction() 
    p = @transaction.createRecord(DA.Project, project) 
    validation_errors = p.validate() 

    if validation_errors 
     DA.displayError validation_errors 
    else 
     @transaction.commit() 

     ### What should be here to transition the route/view? ### 
     router.transitionTo('projects') # Like this? 
     DA.get('router').send('projects') # This? 
     ################################################### 

라우터 :

DA.Router = Em.Router.create 
    location: 'history' 

    root: Em.Route.extend 
    index: Em.Route.extend 
     route: '/' 
     redirectsTo: 'projects' 

    projects: Em.Route.extend 
     route: '/projects' 
     index: Em.Route.extend 
     router: '/' 
     connectOutlets: (router) -> 
     router.get('applicationController').connectOutlet('projects', DA.Project.find()) 
     showProject: Em.Route.transitionTo('project') 

    project: Em.Route.extend 
     route: '/projects/:project_id' 
     connectOutlets: (router, project) -> 
     router.get('applicationController').connectOutlet('project', project) 

    newProject: Em.Route.extend 
     route: '/projects/new' 
     connectOutlets: (router) -> 
     router.get('applicationController').connectOutlet('projectsNew') 

    doProjects: (router) -> 
     router.transitionTo('projects') 
    doProjectsNew: (router) -> 
     router.transitionTo('newProject') 

답변

1

은 내가 내 자신의 질문을 파악했다고 생각하지만, 만약 거기에 다른 사람의 입력을 듣고 싶네요 이렇게하는 더 적절한 방법. 나는 그것이 좋은 생각

DA.ProjectsController = Em.ArrayController.extend  
    createProject: (project) -> 
    @transaction = DA.store.transaction() 
    p = @transaction.createRecord(DA.Project, project) 
    validation_errors = p.validate() 

    if validation_errors 
     DA.displayError validation_errors 
    else 
     @transaction.commit() 
     DA.get('router').transitionTo('projects') 
+1

, 대신 정적 라우터를 액세스, 당신이 그것을 나타내는'target' 속성이 : 이것은 내가 함께 끝난 것입니다. –

관련 문제