角度 $setPristine() 不起作用

2023-12-09

我正在尝试使用 Angular 的内置表单函数,特别是setPristine()清除用户提交时的表单。我的控制器可以访问$scope.newForm(我的形式)及其所有方法,但正在运行$scope.newForm.$setPristine()没有重置表单字段。

这是我的 HTML:

<div ng-controller="NewFormController">
    <h3>New Entry</h3>

    <form name="newForm" method="post" novalidate>
        <div class="input-group">
            <label>Name</label>
            <input name="name" type="text" ng-model="place.name"/>
        </div>
        <div class="input-group">
            <label>Description</label>
           <textarea name="description" type="text" ng-model="place.description"></textarea>
        </div>
        <div class="input-group">
           <label>Neighborhood</label>
           <input name="neighborhood" type="text" ng-model="place.neighborhood"/>
        </div>
        <div class="input-group">    
            <label>Address</label> 
           <input name="location" type="text" ng-model="place.address"/>
        </div>
        <input type="submit" value="Submit" ng-click="submit(place)"/>
    </form>
</div>

这是我调用的控制器setPristine():

app.controller('NewFormController', function($scope, $compile) {

    $scope.place = { 
        name: 'ExamplePlace', 
        description: 'This is a description!', 
        neighborhood: 'Manhattan', 
        address: '112 Street Place' 
    };

    $scope.submit = function(place) {
        $scope.newForm.$setPristine();
        $scope.newForm.$setUntouched();
    };

});

这是一个工作代码笔这重现了我的问题。

注意:我使用的是 Angular 版本 1.4.3。


$setPristine仅将表单标记为$pristine,这对于验证驱动的表达式和 CSS 很有用(例如.ng-dirty)

So, $setPristine不清除表单的控件。其实它根本就不知道how要做到这一点。考虑一下,“清晰”对于不同的模型可能意味着不同的事情。 “清晰”可能意味着"", or undefined, or null,或者任何与自定义输入控件一起使用的东西ngModel可能意味着。

因此,要正确清除表单就是修改将表单驱动为所需的“清除”定义的视图模型。在大多数情况下(包括您的情况),只需将视图模型设置为新对象即可:

$scope.submit = function(place) {
   $scope.newForm.$setPristine();
   $scope.newForm.$setUntouched();

   // clear the form
   $scope.place = {};
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

角度 $setPristine() 不起作用 的相关文章

随机推荐

  • 如何在 Rails 中的 date_select 帮助器中设置默认日期

    我正在尝试在我的 Rails 应用程序 2 3 5 中设置出生日期助手 目前是这样 这会生成一组功能完美的日期字段 工作得很好 但是 它们默认为今天的日期 这对于出生日期字段来说并不理想 我不确定是什么 但除非您正在运行新生儿科 否则今天的
  • requirements.txt 中的安装时依赖项

    我正在使用 tox 准备 venv 并运行单元测试 我的应用程序需要 openopt 库 该库又导入numpy distutils core在其 setup py 中 无论我如何在我的requirements txt中订购numpy和ope
  • 分配给大R数据框[重复]

    这个问题在这里已经有答案了 在 R 中 我通过以下方式创建数据框 data lt data frame dummy rep dummy 10000 data number 0 data another 1 当我运行一个为数据框分配值的 fo
  • 如何在代码中设置colorAccent?

    我想在代码中更改我的应用程序的主题 所以我用谷歌搜索它 不幸的是 我找不到任何方法 在java代码中设置colorAccent 我不想像这样在 xml 中设置这个属性
  • Tkinter 和多线程

    我使用以下代码来检查 Tkinter 是否与多线程一起工作 但是下面的代码不起作用 Gui一运行就没有响应 谁能解释一下为什么它不起作用 from threading import Thread import tkinter as tk w
  • HashMap 应该是未排序的,但仍然根据键排序

    根据这些 http docs oracle com javase 6 docs api java util HashMap html HashMap LinkedHashMap 和 TreeMap 的区别 java初学者 如何在哈希图中对键
  • Pygame 显示无响应

    因此 我尝试为使用精灵进行 X 和 Y 运动的基本 2D Python 游戏创建基础 然而 尽管这里的代码试图screen fill and screen blit playerX 50 playerY 50 player pygame i
  • 帆蓝图生命周期

    我需要向结果添加一些额外的数据find蓝图 我找到了这个解决方案 module exports find function req res return sails hooks blueprints middleware find req
  • 在 Visual Studio 中引用 system.management.automation.dll

    我开始研究 PowerShell 模型和管理单元开发 我注意到的第一件事是引用 System management automation dll 然而 在 Visual Studio 中 NET 选项卡没有该程序集 也无法浏览到 C win
  • 如何刷新Google地图中的坐标?

    我可以在点击刷新按钮时刷新谷歌地图 但它显示的是旧坐标 在某些区域 它显示矩形图像 其中有十字图像 错误在哪里或者我必须对其进行哪些修改 这是我的代码 public class GmapActivity extends MapActivit
  • Julia:为什么共享内存多线程没有给我带来加速?

    我想在 Julia 中使用共享内存多线程 正如 Threads threads 宏所做的那样 我可以使用 ccall jl threading run 来执行此操作 虽然我的代码现在并行运行 但我没有获得预期的加速 以下代码旨在作为我正在采
  • 是否可以保证使用 @PostConstruct 注解的方法先于同一 bean 中使用 @Scheduled 的方法执行?

    假设我正在定义一个缓存 bean 它将在应用程序启动时初始化 并以固定的时间间隔刷新 如下所示 Component public class Cache PostConstruct public void initializeCache S
  • 如何检查没有。使用 MYSQLI_STMT_PREPARE 和 MYSQLI_FETCH_ARRAY 时返回的行数?

    我以为我可以用MYSQLI STMT NUM ROWS and MYSQLI STMT STORE RESULT检查是否有 返回的行数 参见注释行 1 2 3 但在下面的上下文中似乎并非如此 此代码确实有效 没有注释行 但我试图添加额外的检
  • python 按周或月分割 pandas 数据框,并根据这些 sp 对数据进行分组

    DateOccurred CostCentre TimeDifference 03 09 2012 2073 28138 03 09 2012 6078 34844 03 09 2012 8273 31215 03 09 2012 8367
  • Pandas 在读取 CSV 之前忽略前几行

    我正在使用 Pandas 库和 Python 我有一个 Excel 文件 在 Excel 工作表的顶部有一些标题信息 我不需要这些信息来提取数据 但是 标题信息可能需要更长的行 因此无法预测它有多长 所以 我的数据提取应该从 ID 的地方开
  • 从基础模块调用动态特征代码

    我试图实现一个动态功能 从我的基本模块中我应该调用该功能中的一些方法 但它只能从该功能中调用基本方法 有什么方法可以使功能代码从基本模块访问 我了解未安装功能时会发生什么 我已经使用默认的谷歌文档实现了它 所以我没有不同的代码或实现 今天没
  • 在r中使用read_csv导入多个csv文件

    我有一个包含多个 csv 文件名称的向量 library readr data lt c categories csv customers csv employees csv employee territories csv order d
  • InternalsVisibleTo 属性不起作用

    我正在尝试使用InternalsVisibleToassembly 属性 使 NET 类库中的内部类对我的单元测试项目可见 由于某种原因 我不断收到一条错误消息 MyClassName 由于其保护级别而无法访问 两个程序集都已签名 并且我在
  • 将表单结果从联系表单 7 导出到 PDF (fPDF)

    我正在尝试将用户在 WordPress 中的联系表单 7 中输入的值通过 fpdf 导出为 PDF 这就是我所设置的 我可以生成 PDF 但没有从表单动态生成的值 函数 php add action wpcf7 before send ma
  • 角度 $setPristine() 不起作用

    我正在尝试使用 Angular 的内置表单函数 特别是setPristine 清除用户提交时的表单 我的控制器可以访问 scope newForm 我的形式 及其所有方法 但正在运行 scope newForm setPristine 没有