gpt4 book ai didi

javascript - Angular : $setPristine on Form and Checkbox Issue

转载 作者:行者123 更新时间:2023-12-03 11:38:16 25 4
gpt4 key购买 nike

我有一个表单不允许您选中第一个条目上的复选框,这很奇怪。这几乎就像它没有记录点击一样。

但是,如果您提交表单并在提交第一个表单后尝试选中相同的复选框,则它允许您选中这些复选框。这是为什么?

这就是我的复选框的样子:

<label ng-repeat="sector in sectors" for="{{sector}}">
<input type="checkbox" id="{{sector}}" value="{{sector}}" ng-model="newService.sectors[sector]">{{sector}}
</label>

我还试图弄清楚如何在此表单上实现 $setPristine ,以便在提交时为表单提供 .ng-pristine 类。

我对 Angular 非常陌生,正在慢慢尝试理解这一切是如何工作的。

我在这里设置了一个 fiddle :http://jsfiddle.net/nh63w6e0/2/

感谢任何帮助。提前致谢!

最佳答案

问题

使用 JSFiddle 示例,如果您在单击复选框时查看控制台,您将看到错误:

Cannot set property 'health' of undefined

这是因为 $scope.newService 尚未创建,并且您在选中该复选框时尝试执行与 $scope.newService['health'] = true 相同的操作。因此,如您所见,$scope.newService 未定义。

解决方案

您应该添加对 resetCreateForm 的调用来初始化您的 $scope.newService 属性。

JSFiddle (查看最后一行,带注释)

编辑:

解决您使用 $setPristine 的需要,您可以检查此 JSFiddle出来。

您所要做的就是在表单上添加 name 属性,并通过其名称将其称为 $scope 属性。然后,您在表单属性上调用 $setPristine()

关于javascript - Angular : $setPristine on Form and Checkbox Issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26385703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com