0

送信する必要があるフォームがあります。何か問題が発生した場合はエラー ページを表示したいと思います。これにはコントローラーとビューがありますが、ブラウザーの場所のテキスト ボックスを変更しないようにして、ユーザーがブックマークを付けないようにしたいと考えています。エラーページ。

したがって、/Items というページが作成されます。

ユーザーが送信してエラーが発生したため、このページ (itemsError.html) をユーザーに表示したいのですが、ユーザーが /ItemsError をブックマークすることを許可したくありません

routeprovider にプラグインすると、ブラウザーのロケーション バーが /ItemsError のようなもので更新され、後日、ユーザーはページをブックマークできますが、このページは動的なページであり、結果に応じてのみ表示されます。フォーム提出。

このようなものをサポートするためのAngularのベストプラクティスは何ですか?

ありがとう

4

1 に答える 1

0

config.js

$routeProvider.when('/', {
  template: '/views/home.html',
});

index.html

<!doctype html>
<html lang="en" ng-controller="app">
<head>
</head>
<body>
<ng-include src="page"></ng-include>
</body>
</html>

controllers.js

controller('app', ['$scope','$route',function($scope,$route) {
  $scope.$on("$routeChangeSuccess",function($currentRoute,$previousRoute){
    $scope.page = $route.current.template;
  });
}]).

これにより、一般的なルーティングが処理されます。これで、ロジックに基づいてコントローラーのパーシャルを動的に交換できるようになりました。あなたの例では、フォームが正常に完了しない場合、エラー コールバックはその場でパーシャルを変更できます。

controller('form', ['$scope','$route',function($scope,$route) {
  $scope.submit = function(){
    something.get().$then(
       function( value ){$scope.page = '/views/successPage.html/';},
       function( error ){$scope.page = '/views/errorPage.html/';}
    )
  }
}]).
于 2013-07-26T14:11:35.357 に答える