具有Form和$ setPristine的Angular 1.5组件

麦克风

我正在尝试在Angular 1.5的组件中使用表单

我有工作的形式,因为我有模型绑定,可以在提交时获取数据。因此,我90%都想成为自己想去的地方,所缺少的是能够使用$ setPristine正确地重置表单。

我尝试了几种方法,第一种是将表单作为传递给reset函数的参数。

form.html

<form name="$ctrl.userForm">
  ...
  <input class="btn btn-default" type="button" ng-click="$ctrl.reset($ctrl.userForm)" value="Reset" />
</form>

form.component.js

ctrl.reset = function(userForm) {
    ctrl.user = {};
    userForm.$setPristine // Cannot read property '$setPristine' of undefined
};

Plnkr中的完整代码

我还尝试将$ ctrl.userForm声明为空对象$ onInit,但这似乎也不起作用。删除$ setPristine行后,重置将清除窗体数据,但从角度角度来看,它不是状态。

关于我所缺少的东西有什么想法吗?

列尼森德

您可以从plunkr中将整个组件声明为波纹管。

function formController() {
  var ctrl = this;
  ...

  ctrl.reset = function(userForm) {
    ctrl.user = {};
    userForm.$setPristine
  };

  ctrl.reset();
}

该错误源于ctrl.reset();您在不发送参数的情况下调用方法的这一行userForm另外,您使用$setPristine的方式有误,也不必将表单作为参数传递。

我建议您使用在控制器上声明的表单,如下所示:

angular
  .module('application')
  .component('mkForm', {
    templateUrl: 'form.html',
    controller: formController
  });

function formController() {
  var ctrl = this;
  ctrl.master = {};

  ctrl.update = function(user) {
    ctrl.master = angular.copy(user);
  };

  ctrl.reset = function() {
    ctrl.user = {};
    ctrl.userForm.$setPristine();
  };
}

注意:您不必致电,ctrl.reset();因为原始状态是默认状态。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular 1组件与指令定义

来自分类Dev

Angular 2组件和CRUD

来自分类Dev

如何在ES5中将升级的Angular 1服务/工厂注入Angular 2组件?

来自分类Dev

Angular 1组件路由器查询参数

来自分类Dev

Angular 1组件路由器查询参数

来自分类Dev

在没有升级插件的情况下使用angular 1应用中的angular 2组件

来自分类Dev

RxJS主题和Angular 2组件

来自分类Dev

扩展/装饰Angular 2组件和指令

来自分类Dev

Angular 1.5组件按钮和样式

来自分类Dev

Angular 2组件变量范围和参考

来自分类Dev

没有视图的Angular 2组件

来自分类Dev

带有ng-model的Angular 1.5组件

来自分类Dev

具有旧版ng1组件依赖项的ng2 AsyncRoute

来自分类Dev

Angular 2组件和Web组件之间有什么区别?

来自分类Dev

测试ES5中的Angular 2组件?

来自分类Dev

具有使用接口的构造函数的Angular 2组件

来自分类Dev

具有双向绑定输入的Angular2组件不会触发更改事件

来自分类Dev

如何在Angular 2组件函数中使用Angular 1指令变量

来自分类Dev

Angular 1组件路由器:无法读取未定义的属性“ startsWith”

来自分类Dev

升级AngularJS1组件时出现错误“未定义Angular”

来自分类Dev

Angular 2 RC1组件路由不会加载任何内容

来自分类Dev

将resolve参数传递给UI Router中的angular1组件

来自分类Dev

Angular 1组件绑定不评估父控制器变量

来自分类Dev

Angular 1 指令组件在模态和模态外具有不同的行为

来自分类Dev

如何在Angular 1.5组件中对具有不同名称的绑定进行单元测试?

来自分类Dev

Angular 2组件:如何处理圆形输入和输出

来自分类Dev

如何在Angular 2组件中测试RouteConfig和其他装饰器

来自分类Dev

公共还是私有-Angular 2组件类方法混乱

来自分类Dev

在DOM中没有选择器标记的Angular 2组件

Related 相关文章

  1. 1

    Angular 1组件与指令定义

  2. 2

    Angular 2组件和CRUD

  3. 3

    如何在ES5中将升级的Angular 1服务/工厂注入Angular 2组件?

  4. 4

    Angular 1组件路由器查询参数

  5. 5

    Angular 1组件路由器查询参数

  6. 6

    在没有升级插件的情况下使用angular 1应用中的angular 2组件

  7. 7

    RxJS主题和Angular 2组件

  8. 8

    扩展/装饰Angular 2组件和指令

  9. 9

    Angular 1.5组件按钮和样式

  10. 10

    Angular 2组件变量范围和参考

  11. 11

    没有视图的Angular 2组件

  12. 12

    带有ng-model的Angular 1.5组件

  13. 13

    具有旧版ng1组件依赖项的ng2 AsyncRoute

  14. 14

    Angular 2组件和Web组件之间有什么区别?

  15. 15

    测试ES5中的Angular 2组件?

  16. 16

    具有使用接口的构造函数的Angular 2组件

  17. 17

    具有双向绑定输入的Angular2组件不会触发更改事件

  18. 18

    如何在Angular 2组件函数中使用Angular 1指令变量

  19. 19

    Angular 1组件路由器:无法读取未定义的属性“ startsWith”

  20. 20

    升级AngularJS1组件时出现错误“未定义Angular”

  21. 21

    Angular 2 RC1组件路由不会加载任何内容

  22. 22

    将resolve参数传递给UI Router中的angular1组件

  23. 23

    Angular 1组件绑定不评估父控制器变量

  24. 24

    Angular 1 指令组件在模态和模态外具有不同的行为

  25. 25

    如何在Angular 1.5组件中对具有不同名称的绑定进行单元测试?

  26. 26

    Angular 2组件:如何处理圆形输入和输出

  27. 27

    如何在Angular 2组件中测试RouteConfig和其他装饰器

  28. 28

    公共还是私有-Angular 2组件类方法混乱

  29. 29

    在DOM中没有选择器标记的Angular 2组件

热门标签

归档