我有一个我需要提交的表单,如果出现问题我想显示错误页面,我有一个控制器和视图,但我希望浏览器位置文本框不要更改以避免用户从书签错误页面。
所以我会有一个名为/ Items
的页面用户提交并且出现错误,因此我想向用户显示此页面(itemsError.html),但我不想让用户书签/ ItemsError
如果我插入routeprovider,那么浏览器位置栏将使用/ ItemsError等更新,并且稍后用户可以为页面添加书签,但此页面是动态页面,只应显示取决于表格提交的结果。
Angular支持此类内容的最佳做法是什么?
由于
答案 0 :(得分: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/';}
)
}
}]).