为了清楚起见,在主题行中,它表示“单词/图像”。 “单词”部分不是关于清除表单中的单词,而是单词“required”。至于图像,这些是验证图像,如绿色复选标记。
我刚刚意识到我不知道在AngularJS中如何在表单完成时清除单词/图像。基本上,复选标记保留,并在提交经过验证的表格后出现“required”字样。它这样做,因为现在表格是空的。我尝试在脚本页面中使用$ setPristine,
$scope.imgHolderComments.$setPristine(true);
知道它可能不起作用。我找了一个解决方法,所以我检查了这个令人印象深刻的线程(但意识到这更多用于验证本身而不是添加单词/图像)。
Reset form to pristine state (AngularJS 1.0.x)
然后我尝试使用我之前用过的代码进行预验证。或者,如果您愿意,在提交表单之前进行实时验证。我以为我可以回收这个,但没有。
$scope.checkUrl = 'images/validation/y_square_trans.png';
$scope.loadUrl = 'images/validation/loading.gif';
$scope.crossUrl = 'images/validation/loading_wrong.gif';
$scope.imgHolderComments = '';
$scope.comments = "";
$scope.timeout = null;
$scope.imgHolderComments = ($scope.reviewForm.comments.$invalid) ? $scope.crossUrl : $scope.crossUrl;
看起来很脏,但认为在推送数据之后它可以工作。但是图像停留在那里(正如你所看到的,我尝试用十字架替换复选标记,因为我不想创建一个空白的图片)。
我也用Google搜索了,但我发现的一切都与两件事有关:清除表格并删除彩色框(红色/绿色)。当然,我的表格已经做到了。所以,我仍然试图在成功验证后找到一种方法来删除“required”和gif图像。
无论如何,我创造了一个plunker。您必须单击“评论”一词才能显示表单。
答案 0 :(得分:0)
查看指令ng-show
和ng-hide
。
您可以在控制器的某个位置设置$scope.allGood = true;
(验证后)并使用此指令:<span ng-hide="allGood">Required</span>
修改强>
您可能还想查看ng-class
指令。例:
<span ng-class="{green: allGood == 1}">Name:</span>
显然可以根据您的需要设置班级green
。