问题标签 [angularjs-ng-form]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1944 浏览

angularjs - ng-repeat 中的 ng-form 和 ng-submit

我一直在尝试获取一个嵌套表单以正确验证,然后在单击提交按钮时在我的控制器上调用一个函数。我试过删除除提交按钮之外的所有按钮,但它不起作用。我唯一能够开始工作的是 Ng 单击按钮,但我需要验证,并且此方法不允许触发验证。

这是 Controller 和 HTML 中的方法,如果通过 ng-click 调用该方法将起作用

0 投票
1 回答
1982 浏览

angularjs - Angular JS Process form before submit

I have a scenario as follows :

I have one searchbox and the user can enter two types of queries

Scenario One the Search Starts with i.e. A1234 Scenario Two the search Starts with i.e. B1234

Depending on one or two above I want to hit a different webservice.

Whats the best way to distinguish the search on the above input. Is it when the user clicks on my ng-submit I use a regular expression ?

Or should I have a scope variable on .watch() to find out as the user is typing ?

0 投票
1 回答
545 浏览

angularjs - 从 ng-repeat 集合中手动删除项目后,ng-form 不可用

编辑这是这个问题的关键

我有一个会计交易的主明细表。主部分只包含两个字段名称和类型。详细信息部分可以有两个或多个条目,每个条目都有 AccountId、Debit 和 Credit 字段。表单看起来像
在此处输入图像描述
您可以看到每个条目都有一个删除按钮,因此如果我们有两个以上的条目,我们可以随机删除任何条目。表单 html 如下所示

我的要求是,当焦点放在最后一个条目的信用输入上时,新条目应该自动添加到 UI 中。我通过在我的控制器上使用addRowand方法来做到这一点。checkAddRow这些方法如下

同样,这部分很好并且运行良好。但我有另一个要求,如果最后一个条目没有被使用,它不应该导致表单无效。它应该从transaction.Entries收集中删除,其余数据应该正常保存。为了实现这一点,我create定义了$scope如下所示的函数

你可以看到什么create功能在做什么。它正在检查entryForm (ng-form)主窗体中是否存在(transactionForm),然后检查是否entryForm存在$invalid$pristine如果所有这些标志都为真,那么我删除最后一个条目$scope.transaction.Entries并保存数据(当前显示数据已保存的警报)$timeout。如果我不使用超时,那么表单是无效的,所以我必须等待 200 毫秒才能$valid在删除最后一行后检查表单标志。entryForm但令我惊讶的是,当我从 create 函数中删除最后一行时,外部没有附加transactionForm. 另一方面,如果我使用 UI 上存在的删除按钮删除条目,entryForm则存在于 maintransactionForm中。谁能解释为什么会这样。我已经添加了<pre>{{transactionForm|json}}</pre>最后查看它何时可用,何时在主窗体上不可用。我创建了一个plunk来说明我的意思。只需在 master 部分的两个输入字段中添加一些数据,在两个条目的 accountid 字段中输入一些数据,当您到达第二个(最后一个)条目的 Credit 输入时,将自动添加一个新条目。忽略该行,只需按下创建按钮。最后一个条目将被删除,数据将保存,但entryForm将不再存在。我不确定我做错了什么。

0 投票
1 回答
1424 浏览

angularjs - 扩展 angularjs 表单控制器

我有多个子 ng-form,它们是父 ng-form 的一部分,当我将父 ng-form 设置为 $submitted 状态时,我想设置所有子表单的 $submitted 状态。

到目前为止,表单控制器上没有这样的方法可用,请在此处检查

可以说,如果我想扩展当前的表单控制器来做到这一点,我应该怎么做?如何添加新方法$setChildFormsToSubmittedState()?当然,我想在不干扰/触摸角码的情况下做到这一点。

可能吗?我认为应该使用$addControl();.

不知道从哪里开始。

0 投票
1 回答
605 浏览

angularjs-directive - 使用 angularjs 自动填充文本框在 ng-form 标记内

当用户选择文本框选项时,它将动态生成文本框并将其附加到 div otc-dynamic..现在的问题是,如果我选择多个时间文本框选项并输入任何一个文本框,所有文本框开始填充....我想提前停止..thnx jsfiddle:http: //jsfiddle.net/nilamsavani/n2nqkcn8/

0 投票
1 回答
156 浏览

angularjs - 为什么在角度指令`ngForm`中使用“preLink”函数,而不是常规的“postLink”函数?

在 angular.js 中,在 ngForm(form) 指令定义中,compile 函数只返回一个preLink函数。为什么它应该preLink代替 common postLink

以下代码来自 angular.js master 分支:

0 投票
2 回答
11142 浏览

angularjs - 如何将自定义输入指令及其父表单重置为 $pristine

我已经实现了一个自定义输入指令 -counter具有重置功能。该指令具有require: "ngModel".

我正在用 重置指令的原始ngModel状态$setPristine()。与 不同$setDirty()$setPristine()不触及$pristine父窗体的状态。

问:我如何“通知”父表单该指令不再“脏”,以便父表单可以$pristine重置其状态?

请记住,仅调用form.$setPristine()是不够的,因为表单中可能还有其他“脏”控件,我的指令不会(也不应该)知道这些控件。

这是指令的链接功能:

以下是它的使用方法:

笨蛋

0 投票
1 回答
76 浏览

javascript - 无法访问第二种形式的字段

我的应用程序中有一个页面,其中包含一个多步骤表单。为了实现这一点,我在单独的选项卡中有 3 个表单。然后,当您的表单成功验证时,js 只允许您继续下一步。

第一种形式运行良好,我在第二种形式上也使用了相同的结构(如下所示)。

但是,当我打印出来时,{{ yourDetails.organiser_name | json }}它是未定义的。{{ yourDetails }}本身是定义的:

我很难看出我写的东西有什么问题,所以也许我错过了一条规则,该规则不允许有多个角度的形式?

谢谢

0 投票
1 回答
122 浏览

angularjs - 无法从父范围定位 FormController 实例

问题

我正在尝试从其父控制器范围访问 AngularJS FormController 实例(通过name在指令上设置属性创建)。form输出是undefined

混乱

$scope但是当我将控制器对象记录到控制台时,我可以将其视为属性。我还可以使用插值指令从模板本身访问对象。

例子

标记看起来像:

JavaScript 看起来像:

演示

这是完整的 plunk:http ://plnkr.co/edit/EE7pdBF32B5XRbjZuy8R?p=preview

我究竟做错了什么?我正在尝试关注这些文档:https ://docs.angularjs.org/api/ng/directive/form


0 投票
1 回答
30 浏览

javascript - 如何从控制器访问?

考虑我有一个表格,ng-form一个控制器 -

我怎样才能在控制器内访问myCtrl表单 - myForm