在以下場景中傳遞消息的最佳方式是什麼?在視圖之間傳遞對象(flash message)
在成功方案$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')
});
非常感謝你的幫助和努力。 – bsr
我剛剛編輯它,我想到了一個**更好更簡單的實現,它使用數組支持多個閃爍。 –
您也可以考慮使用'$ routeChangeStart',因爲有時(取決於您的設置)成功在進程中調用得太晚(新頁面可能已經加載並且解決了警報範圍)。 –