난 그냥각도-UI-라우터 1.0.x로는 :에서는 event.preventDefault & event.defaultPrevented 대체
$transitions.onStart({}, function(tras){
// need a code equivalent to e.preventDefault
// need a code to identify event.defaultPrevented
// other code goes here...
// get parent states
_o.util.getAncestorStates(toState.name, true).reverse()
.forEach(function (state) {
// certain condition to call event.preventDefault()
if(event.defaultPrevented) {....}
});
});
에 $transitions.onStart
$rootScope.$on('$stateChangeStart', function(e, ...){
e.preventDefault();
// other code goes here...
});
으로 $stateChangeStart
을 대체 나는 우리가를 방지 할 수 있습니다 추측 e.preventDefault()
대신 return $q.reject()
을 추가하여 변환을 수행했지만 return $q.reject()
코드가 어떻게 실행되는지 이해할 수 없었습니다.
또한 event.defaultPrevented
을 어떻게 바꿀 수 있습니까?
나는 transition.promise
에서 뭔가를해야한다고 생각하지만 명확하지 않습니다.
죄송합니다. 공식 문서 - https://ui-router.github.io/ng1/docs/latest/을 쉽게 이해할 수 없습니다. 아무도 내가 위의 코드에 대한 더 나은 설명이나 대체 코드를 찾도록 도와 줄 수 있습니까? 당신은이 두 가지 옵션 중 하나를 선택할 수 있습니다
나는 그냥'내가'필요합니까 이유를 이해하기 위해 전환 ... – tanmay
좋아, 내가 방금 추가 한 더 조각을 취소 .onStart' '에서 FALSE'반환 할 수 있다고 생각 event.defaultPrevented '- 모든 부모 상태를 처리하고 특정 조건에서'event.preventDefault'를 호출하고 다른 부모 상태에 대해'event.defaultPrevented'를 검사합니다. – Garfield
약속 체인을 사용하면 이전 블록이 취소되면 이후 '.then'블록의 코드를 건너 뜁니다. 이전 핸들러가 전환을 취소하면 onStart 핸들러는 호출되지 않습니다. 'event.defaultPrevented'는'onStart' 핸들러에서'true'가 될 수 없습니다. 대신에'onError' 핸들러 체인이 호출되고'event.defaultPrevented'가 true 인 경우에만 블록이 호출됩니다. – georgeawg