Каков наилучший способ передачи сообщения в приведенном ниже сценарии.
В сценарии успеха $scope.p.$save
результат содержит сообщение (res.message
), которое мне нравится отображать в следующем представлении ($location.path("/test/"+res.reply.Id)
). Без AngularJS я могу передать его в URL-адресе или сохранить его в сессионных файлах cookie. Но, я думаю, что может быть лучший способ в AngularJS, поскольку нет перенаправления браузера, и состояние должно быть доступно. Каков наилучший способ достичь этого?
Настройка его в корневом каталоге показывает его, когда я использую кнопку "Назад назад", и область действия сообщения должна только для первой навигации к новому представлению.
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')
});