4

私は独特の問題を抱えています。アンカースクロールサービスを使用してページを一番上にスクロールし、エラーや成功メッセージの保存などのメッセージを表示しています。保存ボタンアクションで機能を実装しています。

ここで、最初にボタンを押すとページが更新され、もう一度使用すると必要な結果が得られます。

どういうわけか、ページが初めて更新されるのを止めたいと思います。

私のフォームはフォームタグ内にありますが、このボタンはフォームディレクティブの外にあります。含まれている $anchorScroll サービス

<a id="top"></a>   at the top of my HTML page.

if(data.validateError==true )
                {
                    $scope.saveSuccessfull=false;
                    $scope.wrongInputError=true;
                    $scope.negErrorMessage=false;
                    $scope.loaderDiv=false;
                    $location.hash('top');
                     // call $anchorScroll()
                   $anchorScroll();
4

3 に答える 3

14

この回答から: https://stackoverflow.com/a/15935517/971これは、同様の問題を抱えている私にとって有用であることが証明されました。

var old = $location.hash();
$location.hash('top');
$anchorScroll();
//reset to old to keep any additional routing logic from kicking in
$location.hash(old);

これにより、リロードが防止されます。

于 2013-11-14T13:21:02.457 に答える
3

@Raulucco によって提案された reloadOnSearch: false ソリューションは、私にとってはうまくいきました。例に従う

$routeProvider
.when('/search', {
           templateUrl : 'views/search.html', reloadOnSearch: false
 })
于 2015-10-10T13:30:21.027 に答える
1

同じ問題が発生した後、この回答を見つけました。jQueryでスクロールするサービスを新規作成することで解決しました。しかし、ドキュメントで、routeProviderで属性 reloadOnSearch を false に設定できるため、ハッシュを変更でき、ビューがリロードされないことがわかりました。よりクリーンな方法を見つけました。

于 2014-11-14T13:20:13.787 に答える