在以下情况下传递消息的最佳方式是什么。
在 的成功场景中$scope.p.$save
,结果包含一条消息 ( res.message
),我喜欢在下一个视图 ( $location.path("/test/"+res.reply.Id)
) 中显示该消息。如果没有 AngularJS,我可以在 url 中传递它或将它保存在会话 cookie 中。但是,我想在 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')
});