双向绑定在 Service Now 平台的 AngularJS 表单中不起作用

问题描述 投票:0回答:0

我在 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();
};

我想要达到的目标

  1. 通过
    newVulnerability
    更新并传递
    newSeverity
    ng-submit
  2. 的值给客户端脚本
  3. 提交后重置表格(因此清空文本
    input
    并重置
    select

问题

  1. 我的理解是

    ng-submit="addVulnerability()"
    应该只提交值,这些值通过启用双向绑定的
    ng-model
    指令更新。 但是,由于某些原因,这些值不会更新。 我通过在提交中显式传递值来解决这个问题,就像这样 -
    ng-submit="addVulnerability(newVulnerability, newSeverity)"
    。这似乎有效,但不是通过双向绑定。

  2. 重置表单不起作用 - 再次强调,将变量重置为空字符串不应该自动更新 UI 吗?

我错过了什么?

angularjs servicenow two-way-binding
© www.soinside.com 2019 - 2024. All rights reserved.