gpt4 book ai didi

angularjs - 如何从家庭 Controller 将表单的值设置为原始值?

转载 作者:行者123 更新时间:2023-12-04 19:06:55 25 4
gpt4 key购买 nike

我有这种情况:

<body ng-controller="HomeCtrl">
<div ng-controller="MainCtrl">
<form name="mainForm" >
<button type"button" ng-click="mp1()">Make Pristine 1</button>
<button type"button" ng-click="mp2()">Make Pristine 2</button>

这适用于 MainCtrl:
app.controller('MainCtrl', function($scope) {
$scope.mp2 = function() {
$scope.mainForm.$setPristine();
}
});

这在 HomeCtrl 中不起作用:
app.controller('HomeCtrl', function($scope) {
$scope.mp1 = function() {
$scope.mainForm.$setPristine();
}
});

这是一个显示问题的 plunkr: Example

我想要做的是获得有效性检查和设置原始两者工作的能力。我尝试了 using 和 ngForm 的不同组合,将表单设置为外部范围中的对象等。仍然无法让这一切都适用于两者。请注意,我真的需要在 HomeCtrl 中执行 $setPristine,因为有不同的 MainCtrl,而且我不想多次重新实现代码。

最佳答案

您需要通过将表单对象包装在容器中来解决嵌套作用域问题:

<form name="cont.mainForm">

然后设置 cont对象在你的最高级别 Controller
$scope.cont = {};

然后使用类似于 Controller 中的主窗体:
$scope.cont.mainForm.$setPristine();

这是为您更新的 plunk: http://plnkr.co/edit/VKY7PlwZgUuVN6jfpAG8?p=preview

关于angularjs - 如何从家庭 Controller 将表单的值设置为原始值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22138723/

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