滚动到第一个错误不起作用
Scroll to first error not working
我的控制器中有以下功能
$scope.progress = function () {
var form = $scope.coverDetails;
for (i in form) {
if ($scope.coverDetails[i].hasOwnProperty('$valid') && !$scope.coverDetails[i].$valid) {
$location.hash(i + '-label');
break;
}
};
$scope.submitted = true;
$scope.validateForm();
if ($scope.coverDetails.$valid) {
$location.path('/zones');
}
$anchorScroll();
};
这有点奏效。但事实并非如此。当我点击提交按钮(调用上面的函数)时,它成功地更新了哈希,但是,ng-class
或ng-show
指令都没有更新,直到第二次按下按钮,假设$location.hash
在第一次和第二次之间没有改变。
其中一个位不工作的例子是
<label id="reg-label" for="reg" ng-class="{'error': coverDetails.reg.$invalid && submitted}">
Number plate
</label>
在本例中,类'error'
没有应用,但如果字段无效,它将滚动到标签。
有谁能帮忙吗?
所以我弄清楚了发生了什么,更改散列会导致临时重新加载,因此必须使用以下代码来防止这种情况
angular.module("ScrollToErrorPrevention", []).factory('$preventErrorReload', ['$route',
function ($route) {
return function ($scope) {
var lastRoute = $route.current;
$scope.$on('$locationChangeSuccess', function () {
if (lastRoute.$$route.templateUrl === $route.current.$$route.templateUrl) {
$rootScope.$broadcast('locationChangedWithoutReload', $route.current);
$route.current = lastRoute;
}
});
};
}
])
并将其包含在应用程序中,因此:
angular.module('app', ['ScrollToErrorPrevention'])
并从控制器调用工厂方法
angular.module('app').controller('controller', ['$scope', $preventErrorReload,
function($scope, $preventErrorReload) {
$preventErrorReload($scope);
...
}
]);
之后,使用$location.hash(...)
和$anchorScroll()
可以很好地进行
这项工作并不完全是我自己的,而是从一个或两个(更多?)其他来源修改而来的
相关文章:
- jquery中出现NaN错误.已经尝试过ParseInt,但仍然不起作用
- 未捕获的类型错误:无法设置属性'innerHTML'如果为null,则将脚本移动到正文不会;不起作用
- 错误检查在Javascript中不起作用
- Javascript设置日期不起作用,显示错误的时间
- javascript函数,该函数不起作用,但不会显示任何错误
- 属性选择器不起作用(语法错误、无法识别的表达式)
- .fillStyle 不起作用,控制台中没有错误
- 简单的jquery不起作用,并返回错误
- 点击按钮dons'它在IE9中不起作用,但没有错误消息(它在chrome中起作用)
- jQuery验证不起作用:需要知道错误
- jQuery alerts在jQuery 1.11.2上不起作用;类型错误:n.browser未定义;
- Twitter引导程序弹出在网站上不起作用:未获取引用错误
- 错误验证在AngularJS中不起作用
- 使用Javascript在模态内部的标签上显示错误消息不起作用
- jQuery “$.ajax” 代码不起作用,语法错误
- 角度 UI 类型提前不起作用 - 没有错误
- Jquery 选项卡不起作用或引用错误
- Jquery 谷歌自动完成不起作用 - 没有错误
- Rails 4 - 没有JavaScript错误,但JS不起作用
- PHP 指向错误 404 不起作用