2014-05-18 10 views
0

해시로 일부 페이지를 탐색 한 다음 로직을 수행하고 새 페이지/모듈을 렌더링하지 않고 다시 리디렉션 할 수 있습니까? 그러나 어디에서 탐색했는지 다시 표시 하시겠습니까?DurandalJS 페이지를 렌더링하지 않고 리디렉션하는 방법은 무엇입니까?

사실 내가 원하는 것은 스플래시 화면을 표시하지 않고 동일한 로직을 수행하고 동일한 페이지를 새로 고치는 것입니다. ,

define(['plugins/router', 'jquery'], function (router, $) { 
return { 
    activate: function (culture) { 
     return $.post("api/language", { '': culture }, function() { 
      router.navigateBack(); 
     }).then(function() { return false; }); 
    }, 
    viewUrl: 'settings/loading' 
}; }); 

BUTY 내 문제는 다음과 같습니다 language.js에서

<a class="language-link" href="#language/en-US"> 

내가 "활성화"기능으로 데이터를 받고 간단한 코드가 있습니다

예를 들어 내가 간단한 HTML 링크가 짧은 시간 동안 viewUrl 속성에서 loading.html이 표시됩니다. 그 직후 나는 이전 페이지로 돌아갈 것이다.

loading.html 페이지가 렌더링되지 않도록하고 싶습니다. 그렇게하는 방법? Durandal documentacion을 통해 여행 중이며 Google에서 검색 중이지만 아무 것도 찾을 수 없습니다.

.then (function() {return false;});

위의 코드는 활성화 함수에서 false를 반환 및 렌더링에서 페이지를 방지하기 위해 나의 시도했지만 작동하지 않습니다 :(

편집

내가 렌더링의 설정/로딩을 방지 할 나는에서 탐색 된 이전 페이지를 새로 고칩니다.

답변

0

예는 return false로 (Read more here)

canActivate 라이프 사이클 기능을 사용하여 그렇게 할 수 있습니다
define(['plugins/router', 'jquery'], function (router, $) { 
return { 
    canActivate: function() { 
     // some logic.. 
     // router.navigateBack();    
     return false; 
     } 
}; }); 
+0

시도해 보았지만 탐색했던 페이지가 새로 고쳐지지 않았습니다. 어쩌면 나는 그것에 일관성이 없었지만, 나는 네비게이션을하고 있던 이전 페이지를 렌더링하고 새로 고침하는 것을 막기를 원했다. –