0
フォームを送信してユーザープロファイルを保存すると、レコードが正常に保存されたかどうかを示す警告メッセージが表示されます。 3つのブートストラップタブがあり、保存したいフォームはアクティブなタブにあります。フォームを保存し、ブートストラップタブで状態を再読み込みする
$state
がリロードされる必要があるため、警告が表示されないと思います。私はこれを行う方法がわかりません。このページが別のルートだった場合、私はおそらく$state.reload()
またはこれに類するものを行うことができます。別のタブをクリックして戻ると、アラートが表示されます。
私は試しました:$state.transitionTo('myprofile', null, {reload: true, notify:true});
それでも運がありません。アラートを表示する
HTML:
<div ng-if="profilesaved == 'saved'" class="alert alert-success fade in">
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
<strong>Success!</strong> Your profile has been saved
</div>
関連状態:
.state('myprofile', {
url: '/my-profile',
templateUrl: 'pages/my-profile.html',
controller: 'MyProfileController as myprofile',
resolve: {
// controller will not be loaded until $requireSignIn resolves
"firebaseUser": ["$firebaseAuthService", function($firebaseAuthService) {
// If the promise is rejected, it will throw a $stateChangeError
return $firebaseAuthService.$requireSignIn();
}]
}
})
DBレコードを設定する関数。
$scope.submit = function() {
var record = firebase.database().ref().child('myprofile/'+firebase.auth().currentUser.uid)
.set({
name: $scope.profile.name,
address: $scope.profile.address
}
)
.then(function(data) {
console.log('profile saved');
$scope.profilesaved = "saved";
})
.catch(function(error) {
console.log('profile save failed');
$scope.profilesaved = "save-failed";
});
};