当前位置: 首页 > 面试题库 >

AngularJS:如何在控制器中手动将输入设置为$ valid?

景稳
2023-03-14
问题内容

使用TokenInput插件并使用AngularJS内置的formController验证。

现在,我正在尝试检查该字段是否包含文本,然后将其设置为有效(如果包含)。使用该插件的问题是它创建了自己的输入,然后创建了ul + li进行存储。

我可以访问addItem(formname)和控制器的功能,只需将其设置为$ valid即可。

标记。

<form class="form-horizontal add-inventory-item" name="addItem">
     <input id="capabilities" name="capabilities" token-input data-ng-model="inventoryCapabilitiesAutoComplete" data-on-add="addCapability()" data-on-delete="removeCapability()" required>
     <div class="required" data-ng-show="addItem.capabilities.$error.required" title="Please enter capability."></div>
</form>

JS。

$scope.capabilityValidation = function (capability) {
  if (capability.name !== "") {
    addItem.capabilities.$valid = true;
    addItem.capabilities.$error.required = false;
  } else {
    addItem.capabilities.$valid = false;
    addItem.capabilities.$error.required = true;
  }
};

当TokenInput输入并传入对象时,我正在运行capabilityValidation函数。

编辑:

在我的输入中发现ng-model会填充并获得自动完成的结果,这就是为什么我无法让ng-valid起作用的原因,因为它基于模型。

$scope.inventoryCapabilitiesAutoComplete = {
  options: {
    tokenLimit: null
  },
  source: urlHelper.getAutoComplete('capability')
};

我没有编写此自动完成的实现,还有另一种方法可以在其中访问ng-model attr并将模型函数移至其他位置吗?


问题答案:

您不能直接更改表单的有效性。如果所有后代输入均有效,则该格式有效,否则无效。

您应该做的是设置输入元素的有效性。像这样

addItem.capabilities.$setValidity("youAreFat", false);

现在,输入(以及表单)无效。您还可以查看导致错误的错误。

addItem.capabilities.errors.youAreFat == true;


 类似资料:
  • 问题内容: 谈话很便宜,请先显示我的代码: HTML: 指示: }); 控制器: 现在工作了,当我单击加号图标时,浏览器控制台输出“添加”。 但我想将控制器动态设置为指令,如下所示: HTML: 控制器: 指令喜欢: 如何实现我的目标?感谢您的回答! 问题答案: 现在可以使用AngularJS。在指令中你只需要添加两个新的属性叫 ,财产,也正好在这里需要。 指令中要注意的重要事项 设置指令动态控制

  • 问题内容: 我是Angular的新手,正在尝试弄清楚该怎么做… 使用AngularJS,如何注入要在另一个控制器中使用的控制器? 我有以下片段: 执行此操作时,出现错误: 我是否应该尝试在另一个控制器内部使用一个控制器,还是应该将此服务用作服务? 问题答案: 如果您打算掌握已经实例化的另一个组件的控制器,并且如果您遵循的是基于组件/指令的方法,则始终可以遵循某个层次结构的另一个组件中的控制器(一个

  • 问题内容: 我需要更改输入的插入符号位置,在该位置添加给定的数字(示例)。 是否可以执行类似此示例的操作? 我需要例如: 输入:1234。 因此插入符号的位置将为2。 新数字:9 决赛:12934 提前致谢。 问题答案: 我认为这类情况在指令中看起来更好。例如: 用法: 我从这个答案中使用了跨浏览器光标定位的功能。 演示:http : //plnkr.co/edit/5RSgzvyd8YOTaXP

  • 大家好,我有代码主和tictactoe类 这里是main类的示例。在这段代码中,我输入了类似字符串号的内容 这是为我的tictactoe程序班准备的。如果我运行这个代码,我只有3x3tictactoe程序,所以我想用我的输入修改其中一个代码,这样我的tictactoe将输入x输入 我的问题是我想改变这个领域 成为 公共静态最终int行=输入;//行按COLS单元格public static fin

  • 问题内容: 我正在尝试在angularjs中实现一个插件系统,该系统将允许用户配置他们将在特定页面上看到的“小部件”。每个窗口小部件均由控制器和模板(URL)定义。是否可以创建一个实例化控制器,使用模板调用它并包含结果内容的指令? 目标是这样的: 问题答案: 有两种方法可以做到这一点; 一种是使用已经可用的helper指令(例如和),第二种是手动的;手动版本 可能 会更快,但我不确定。 简单方法: