gpt4 book ai didi

javascript - AngularJS 中依赖表单验证的单元测试 Controller

转载 作者:数据小太阳 更新时间:2023-10-29 04:20:42 25 4
gpt4 key购买 nike

在我的 Controller 中,我只想在表单有效时调用一个 Action (比如按 Tab 键)。我还需要在成功提交表单后立即清除表单。我有这样的东西

app.controller('CommentFormController', function($scope) {
$scope.submit = function() {
if($scope.commentForm.$valid) {
// submit form
$scope.comment = '';
$scope.commentForm.$setPristine();
}
}
});

我想对此进行测试,但看起来我必须手动创建此 $scope.contactForm 并 stub $setPristine() 函数。

还有其他方法可以测试吗?我的意思是我能以某种方式在我的测试中获取底层 FormController 的实例吗?

你如何处理这种情况?

最佳答案

将表单设置为 pristine 会影响表单的状态,但不会将表单重置为您的默认值(如果您提供了默认值)。相反,您可以使用 DOM 元素方法 reset()。

像这样:

document.getElementById("yourform").reset();

或者,由于 angularJS 和 jQuery 可以很好地发挥作用,您可以使用 css 选择器(如果您有多个表单要同时清除,这尤其有用。

所以像这样:

$("#yourform")[0].reset();

也有纯 javascript 方法可以做到这一点: http://www.javascript-coder.com/javascript-form/javascript-reset-form.phtml

--- 因此总而言之,您不需要使用特定方法来执行此操作,只需使用 DOM 方法、jQuery 或纯 javascript。谷歌可能很快就会想出办法来做到这一点。希望这会有所帮助。

关于javascript - AngularJS 中依赖表单验证的单元测试 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19156613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com