2015-01-05 2 views
1

Appgyver 프로젝트에서 모달로 두 개의 뷰를 연속해서 열려고합니다. supersonic.ui.modal.hide()supersonic.ui.modal.show(some_view)을 수행하면 두 번째보기가 표시되지 않습니다. modal.hide()modal.show() 사이에 alert('here')을 넣으면 작동하는 것 같습니다. 여기에 어떤 문제가 있습니까? supsersonic.ui.layers.pop()supersonic.ui.layers.push(another_view)과 연속해서 동일합니다.AppGyver : 초음속 앱에서 연속적으로 두 모달을 열 수 없습니다.

사용 샘플 :

}else if (option === 'chooseLocation'){ 
    $scope.currentOption = "location you chose."; 
    $scope.f = true; 
    supersonic.ui.modal.hide().then(function(){ 
    supersonic.ui.modal.show("chooseLocation"); 
    $localStorage.locationOption = 'lastUsed'; 
    }); 
} 

나는 또한 조동사와 관련이없는 것 아침을 시도했지만 또 다른 조각이 작동하지 않습니다

supersonic.ui.layers.popAll().then(function(){ 
    var view = new supersonic.ui.View("searchresults#index?"+paramText); 
    supersonic.ui.layers.push(view); 
}); 

내가 로그 화면에 얻을 오류를 :

landing#drawer 11:23:29.382 error 
"supersonic.ui.layers.popAll rejected: {}" 
+0

전체 코드 예제를 공유해주세요. 내 생각 엔 첫 번째 함수 호출이 성공적으로 실행되기 전에 두 번째 함수 호출을 호출하는 것입니다. promise의 성공 콜백에서 두 번째 modal.show를 호출해야한다. –

+0

@peter는 예제를 포함하도록 질문을 업데이트했습니다. – nabn

답변

1

이것은 Supersonic API의 버그 인 것 같습니다.

Javascript 성공 콜백은 네이티브 래퍼가 API 호출을 받으면 호출됩니다. 이는 잘못된 행동입니다. 네이티브 래퍼에 이 완료되면 API 호출 (예상 된 동작)이 완료되면 Javascript 성공 콜백이 호출되어야합니다.

해결 방법으로 didclose과 같은 Steroids.js 이벤트를 사용하여 원시 API 호출이 완료되었는지 확인하십시오. 자세한 내용은 Steroids modalsSteroids layers을 참조하십시오.

새로운 버그를 제출했습니다. AppGyver Github issues

+0

'스테로이드 '가 정의 되었습니까? 그렇지 않은 경우 steroids.js를 포함해야합니다. 추신. Safari Inspector/Chrome DevTools를 사용하여 문제를 디버깅하지 않는 것 같습니다. –

+0

예,'steroids'는'common # layout'에 포함되어 있습니다. Linux를 사용 중이며 chromeDevtool을 사용하기 위해 내 OS가 지원되지 않는다고 말합니다. – nabn

관련 문제