我在 ServiceNow 平台上使用 AngularJS 处理表单。看起来很简单,比如双向绑定不起作用。
这是我的 html 的简化片段:
<form name="vulnerabilityForm" ng-submit="addVulnerability(newVulnerability, newSeverity)">
<div class="col-sm-10">
<input type="text" class="form-control" id="vulnerability" ng-model="newVulnerability" required>
</div>
<div class="col-sm-10">
<select ng-options="option.value as option.name for option in severityOptions" class="form-control" id="severity" ng-model="newSeverity" required>
<option value="">Select Severity</option>
</select>
</div>
</form>
和客户端脚本:
$scope.vulnerabilities = [];
$scope.newVulnerability = '';
$scope.newSeverity = null;
$scope.addVulnerability = function(newVulnerability, newSeverity) {
$scope.vulnerabilities.push({
description: newVulnerability,
severity: newSeverity
});
// reset input fields
$scope.newVulnerability = "";
$scope.newSeverity = "";
$scope.vulnerabilityForm.$setPristine();
$scope.vulnerabilityForm.$setUntouched();
};
我想要达到的目标:
newVulnerability
更新并传递
newSeverity
和
ng-submit
input
并重置select
)问题:
我的理解是
ng-submit="addVulnerability()"
应该只提交值,这些值通过启用双向绑定的ng-model
指令更新。
但是,由于某些原因,这些值不会更新。
我通过在提交中显式传递值来解决这个问题,就像这样 - ng-submit="addVulnerability(newVulnerability, newSeverity)"
。这似乎有效,但不是通过双向绑定。
重置表单不起作用 - 再次强调,将变量重置为空字符串不应该自动更新 UI 吗?
我错过了什么?