如何清除一个羽毛模式

时间:2017-02-14 08:28:55

标签: javascript angularjs featherlight.js

我在页面中使用了羽毛模式。在模态一个表单上有一些输入字段。一旦我填写字段并关闭模态,当我再次打开它时,它包含以前填充的数据。我想在数据关闭后清除它。我在我的页面中使用角度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'因为如果我删除它,那么表单验证不会在第一个模态上工作。

我的问题是,当我下次打开第二个模态时,它包含以前填充的值,当我点击提交按钮时,我的第二个模态不显示。 任何人都可以帮助我解决我的问题吗?

2 个答案:

答案 0 :(得分:1)

如果您使用的是persist选项,那么表单会保留,因此您必须自行清除。

如果没有,那么每次都会获得一份新的复制表格。在这种情况下,你必须要小心如何绑定它并避免使用任何ID,因为它们应该是唯一的。

答案 1 :(得分:0)

据我所知,featherlight是一个gallery插件,用于在灯箱中显示图像。考虑到这一点并不意味着这样使用(即使你可以,但它不会像你期望的那样开箱即用),所以这就是为什么你必须清理你(或更具体的用户) ,并在弹出关闭操作,清除所有表单域。有几种方法可以做到这一点,例如。表单重置按钮(输入类型=“重置”),js回调关闭弹出或提交事件(或在你的情况下使用角度js事件)等。

由于您没有提供我现在可以告诉您的任何代码..

也可能是symfony's documentation

的副本

<强>更新

不确定你究竟想要在这里做什么,但是如果你移除(或移动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');
  }
}

});