我在页面中使用了羽毛模式。在模态一个表单上有一些输入字段。一旦我填写字段并关闭模态,当我再次打开它时,它包含以前填充的数据。我想在数据关闭后清除它。我在我的页面中使用角度js。 谁能告诉我如何使用角度js清除羽毛模态?
更新 -
在我的代码中,我必须在关闭第一个模态后打开另一个模态。一旦第二个模态关闭,如果我打开我的第一个模态,它显示以前填充的数据,我想重置第一个模态的模态数据。 在我的HTML中我使用下面的代码 -
<button type="submit" ng-click="anotherModal(myForm)" ng-class="{ 'featherlight-close' : myForm.$valid}">Submit</button>
在脚本中我使用下面的代码 -
$scope.anotherModal= function (myForm) {
if ($scope.myForm.$valid) {
$scope.myForm.$submitted = true;
$.featherlight("#f12","open");
}
}
有谁能告诉我在哪里可以添加以重置第一个模态?
更新了Plunker -
请在此找到我的傻瓜 - https://plnkr.co/edit/cDP1eqtUsKkeMaUiCIoM?p=preview
我在我的代码中使用persist ='shared'
因为如果我删除它,那么表单验证不会在第一个模态上工作。
我的问题是,当我下次打开第二个模态时,它包含以前填充的值,当我点击提交按钮时,我的第二个模态不显示。 任何人都可以帮助我解决我的问题吗?
答案 0 :(得分:1)
如果您使用的是persist
选项,那么表单会保留,因此您必须自行清除。
如果没有,那么每次都会获得一份新的复制表格。在这种情况下,你必须要小心如何绑定它并避免使用任何ID,因为它们应该是唯一的。
答案 1 :(得分:0)
据我所知,featherlight是一个gallery插件,用于在灯箱中显示图像。考虑到这一点并不意味着这样使用(即使你可以,但它不会像你期望的那样开箱即用),所以这就是为什么你必须清理你(或更具体的用户) ,并在弹出关闭操作,清除所有表单域。有几种方法可以做到这一点,例如。表单重置按钮(输入类型=“重置”),js回调关闭弹出或提交事件(或在你的情况下使用角度js事件)等。
由于您没有提供我现在可以告诉您的任何代码..
的副本<强>更新强>
不确定你究竟想要在这里做什么,但是如果你移除(或移动showAnotherModal函数)$.featherlight.defaults.persist=true;
行,它就像你描述的那样工作,当你第二次打开它时,第一个弹出窗口被清除。以下是您的代码段更新:
var app = angular.module('myApp', ['ngMessages']);
app.controller('myCtrl', function($scope) {
// $.featherlight.defaults.persist="shared";
$scope.showAnotherModal = function () {
$.featherlight.defaults.persist="shared";
if ($scope.myForm.$valid) {
$scope.myForm.$submitted = true;
$scope.myForm.dirty = false;
$scope.myForm.$setPristine();
$scope.myForm.$setUntouched();
$.featherlight("#fl3",'open');
}
}
});