아래 시나리오에서 메시지를 전달하는 가장 좋은 방법은 무엇입니까?보기간에 개체 전달 (플래시 메시지)
$scope.p.$save
의 성공 시나리오에서 결과에는 다음보기 ($location.path("/test/"+res.reply.Id)
)에 표시하려는 메시지 (res.message
)가 포함되어 있습니다. AngularJS가 없으면 URL에 전달하거나 세션 쿠키에 저장할 수 있습니다. 그러나 브라우저 리디렉션이없고 상태를 사용할 수 있어야하므로 AngularJS에서 더 좋은 방법이있을 것으로 생각됩니다. 이것을 달성하는 가장 좋은 방법은 무엇입니까?
rootscope에 설정하면 브라우저의 뒤로 버튼을 사용하는 동안 표시되며 메시지의 범위는 새보기로의 첫 번째 탐색에만 사용해야합니다.
function NewCtrl(Phone, $location, $rootScope, $scope) {
$scope.p = new Phone();
$scope.save = function() {
$scope.p.$save(
{},
function (res) {
$rootScope.message = res.message **//<-- this will cause message still set when using browser back button, etc**
$location.path("/test/"+res.reply.Id); **//<-- Req: needs to pass the message to next view**
}, function (res) {
//TODO
}
);
};
}
....
PhoneApp.factory('Phone', function ($resource) {
return $resource('/api/test/:_id')
});
감사합니다. – bsr
방금 편집 했으므로 배열을 사용하여 여러 번 깜박임을 지원하는 ** 더 좋고 간단한 구현을 생각했습니다. –
'$ routeChangeStart'도 고려해 볼 수 있습니다. 프로세스에 너무 늦게 불려지는 성공이 (때로는 설정에 따라) 새 페이지가 이미로드되어 경고 범위가 해결되었을 수 있기 때문입니다. –