약 5 $ http .get 및. post 메소드의 응답을 컨트롤러에서 다른 컨트롤러로 전달합니다. 나는 그 응답을 전달하기 위해 방송을 사용할 계획이었다. 그러나 state.go가 더 나은 경로 일 수 있습니다. (말장난 의도 없음 :). 이미 몇 가지 상태가 정의되어 있습니다. 매개 변수를 전달하기위한 다른 비 URL 전환 상태를 추가해야합니까? 감사
1
A
답변
2
난 당신이
//Example
$routeProvider
.when("/chat", {
templateUrl: "msgView.html",
controller: "msgController",
resolve: {
messages: function($http){
//return your $http.get calls data
}
}
});
//use resolve like this in controller
app.controller("msgController", function (messages) {
$scope.messages = messages;
});
또한이 상태 초록을 만들 수있는 각도 경로에 해결을 사용하거나 최상위 부모 상태에서 또는 바로 위 부모의 해결 작업을 수행해야한다고 말할 것 상태. 이렇게함으로써 UI 라우터
$stateProvider
.state('chat', {
url: '/chat',
templateUrl: 'partials/chat.html',
controller: 'msgController as vm',
resolve: {
messages: function($http){
//return your $http.get calls data
}
}
});
를 사용
예 당신은 당신이 당신의 뷰와 컨트롤러를 초기화하기 전에 데이터를 사용할 수 있는지 확인합니다. 데이터가 비어 있거나 부분적이라면 컨트롤러에서 원하는대로 "데이터를 사용할 수 없음"이라는 메시지 또는 원하는대로 처리 할 수 있습니다.
이것은 또한 오류가 다음 사용자가 404 페이지 나 다른 페이지로 리디렉션됩니다 결의 발생하면
$state.defaultErrorHandler((error: any) => {
$state.transitionTo("404");
});
이 좋은 소리에 지정되도록합니다. 이미 정의 된 경로 중 몇 가지는 get 및 posts에서받은 res.data를 사용합니다. 그래서 해결이 좋은 아이디어입니까? 데이터가 누락되면 새로운 관점을 시작하지 않습니까? 부분 데이터 만 받았고 일부 데이터가 누락되었지만 새 상태를 인스턴스화하고 싶다면 어떻게해야합니까? – uniXVanXcel
ui-router와 달리 ngRoute를 사용하는 것으로 나타났습니다 – uniXVanXcel
@uniXVanXcel 데이터가 누락 된 경우 새보기를 시작하지 않기 위해 "내 응답을 업데이트하고 ui-router와 Yes를 포함했습니다." 문제. – Hey24sheep