以下のシナリオでメッセージを渡すための最良の方法は何ですか。
の成功シナリオで$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')
});