首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

setErrors({ backend: true })不工作,因为loop控件有值或因为ngfor循环

根据提供的问答内容,我将尝试给出一个完善且全面的答案。

首先,"setErrors({ backend: true })不工作,因为loop控件有值或因为ngfor循环"这个问题涉及到前端开发中的错误处理和循环控制。具体来说,这个问题可能出现在使用Angular框架进行前端开发时,通过ngFor指令进行循环渲染数据时出现的错误。

在Angular中,ngFor指令用于循环渲染数据列表。当ngFor指令中的循环控件有值时,即数据列表不为空时,调用"setErrors({ backend: true })"方法可能不会生效。这是因为ngFor指令会根据数据列表的长度动态生成对应数量的DOM元素,如果数据列表为空,ngFor指令不会生成任何DOM元素,因此无法触发错误处理。

解决这个问题的方法是在调用"setErrors({ backend: true })"之前,先判断数据列表是否为空。可以通过以下方式进行判断:

代码语言:txt
复制
if (dataList.length > 0) {
  // 数据列表不为空,执行错误处理
  setErrors({ backend: true });
}

这样,在数据列表不为空时,才会执行错误处理。

关于ngFor循环的更多信息,可以参考Angular官方文档中关于ngFor的介绍:Angular - ngFor

对于错误处理和表单验证相关的内容,可以参考Angular官方文档中关于表单验证的章节:Angular - 表单验证

以上是对于提供的问答内容的完善答案,希望能对您有所帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在 ViewModel 中让数据验证出错(Validation.HasError)的控件获得焦点

这个需求在使用 CodeBehind 的场景很容易实现,但 MVVM 模式就有点难,因为 ViewModel 应该不能直接调用 View 上的任何元素的函数。...的样式并为它添加 DataTrigger,当 IsNameHasFocus 的True 时,通过 FocusManager.FocusedElement 指定某个元素获得焦点: <StackPanel.Style...自动获得焦点 上面的做法实现了我的需求,而且使用这种方案可以让 ViewModel 对 View 更多的控制权,可以指定哪个 UI 元素在任何时间获得焦点,但坏处就是要写很多代码,而且属性越多耦合越多...另一种做法是让 Validation.HasError 为 true控件自动获得焦点,可以在 View 上添加这个样式: <Style TargetType="TextBox" BasedOn="{...最后 这篇文章只介绍了简单的解决方案,最后还是需要根据自己的业务需求进行修改<em>或</em>封装。View 和 ViewModel 交互可以是一个很庞大的话题,下次有机会再深入探讨。 7.

1.5K40

AngularDart4.0 指南- 表单 顶

创建一个基本的表单 一个Angular表单两个部分:一个基于HTML的模板和一个组件类,以编程方式处理数据和用户交互。 从课程开始,因为它简要地说明了英雄编辑可以做什么。...任何唯一将会这样做,但使用描述性名称是帮助的。 将[(ngModel)]与表单结合使用时,定义ngControl指令是一项要求。...跟踪控制状态 Angular表单控件可以告诉您用户是否触摸了该控件是否改变,或者该是否失效。...touched和untouched指示控件是否被访问过。 valid反映了控制的有效性。 样式控件 有效的控制属性是最有趣的,因为当一个控制无效时,你想发送一个强烈的视觉信号。...在这个例子中,当控件是有效的或者原始的时候隐藏消息 - “pristine”意味着用户没有改变这个因为它是以这种形式显示的。 用户体验是开发者的选择 有些开发人员希望消息始终显示。

17.5K30
  • AngularDart4.0 指南- 模板语法二 顶

    true/false的 当isActive表达式返回true时,NgIf将HeroDetailComponent添加到DOM。...在Dart模式下,Dart期望布尔(类型为bool的)为truefalse。 即使在生产模式中,Dart唯一真实的是true, 所有其它是false。...NgSwitchCase和NgSwitchDefault指令是结构指令,因为它们添加删除DOM中的元素。 NgSwitchCase在其绑定等于交换机时将其元素添加到DOM。...heroForm的是什么? heroForm是一个Angular NgForm指令的引用,可以跟踪表单中每个控件和有效性。 原生元素没有form属性。...但是NgForm指令,它解释了如果heroForm.form.valid无效并且将整个表单控件树传递给父组件的onSubmit方法,您可以禁用提交按钮。

    30K20

    Angular: 最佳实践

    这很有用,因为当服务端提供一个 User 实例数据给你,它只能返回字符串类型的时间给你,但是你可能有一个 datepicker 控件,它将日期作为有效的 JS Date 对象返回,并且为了避免数据被误解..., status: Statuses.Read} ]; } 复制代码 所以,现在我们一个基本组件(实际上就是一个容器),我们的组件可以从中派生以重用应用程序的全局和方法。...比如,你想在模版中为未正确填写表单控件添加 has-error 类(也就是说并非所有的校验都通过)。...如果我们更多的表单控件,那么它会使得视图更加混乱,并且创建了很多重复的逻辑。...读者可能意识到我并没有写关于 Directives 和 Pipes 的相关内容,那是因为我想写篇详细的文章,关于 Angular 中 DOM 是怎么工作的。

    2.8K40

    AngularDart 4.0 高级-结构指令 顶

    它需要一个布尔表达式并使DOM的整个块出现消失。 Expression is true and ngIf is true....NgFor指令具有比本指南中显示的NgIf更多的功能,包括必需的和可选的。 至少NgFor需要一个循环变量(let hero)和一个列表(heroes)。...Angular设置let-hero为上下文的$implicit属性的NgFor已经用当前迭代的hero初始化了它的。 API指南描述了额外的NgFor指令属性和上下文属性。...这个用例一个简单的解决方案:将*ngIf放在包裹*ngFor元素的容器元素上。 一个两个元素可以是一个temple,所以你不必引入额外的HTML级别。...模板来解决 Angular 是一个分组元素,不会干扰样式布局,因为Angular不会将其放入DOM中。 以下是条件段落,这次使用。

    16.1K20

    深入理解libevent事件库的原理与实践技巧

    libevent 旨在替换在事件驱动的网络服务器中找到的事件循环。应用程序只需要调用event_dispatch(),然后动态添加删除事件,而无需更改事件循环。...被动关闭连接其他异常的回调函数。wm_read读水平线,里面分高水平和低水平。...);return (retval);}(1)事件循环:event_base_dispatch(),event_base_loop()。...5.2、IO函数使用与网络原理(1)了libevent可以不使用IO函数。因为如果使用IO函数,既需要知道这些IO函数里面的系统调用返回的含义。(2)了libevent就可以不清楚数据拷贝原理。...libevent解决了网络编程中IO函数处理的痛点,因为多线程环境下很难处理IO函数的返回,以及很难控制数据安全性。

    12110

    当nz-checkbox-group多选框组遇上必选校验

    this.validateForm.value.one); // 3 console.long(this.validateForm.invalid);// 4 结果发现 初始时:1、false,2、false,3、oneOption中的,...4、false 选择一个选项后:1、true,2、false,3、oneOption中的+选中的value,4、false 从而始终无法触发显示 “通知范围必选” 第一次尝试 最开始尝试是将this.validateForm.value.scopes...继续探索,看到getFormControl('one').hasError('required'),既然has,有没有set一类的?...== 0){ this.getFormControl('one').setErrors({'required':true}); } 发现上面的2可以变成true了,但1始终是false,导致无效。...于是了如下的终极解决方案: 问题.html中不用做修改。 问题.ts修改如下: //因为不想在提交方法_submitForm()再循环一遍获取多选结果,就只好在这先定义一个临时的用于存储选择结果。

    4.4K20

    最受欢迎的10大Angular技巧

    因为我们使用 RxJS,所以服务可以在其中包含一个 Observable Subject 并对其进行一些数据转换。...s=20 控件为 ReplaySubject 在某些情况下,你需要订阅控件 valueChanges 并获取其当前。不要重新发明轮子,只需这样做即可: ?...s=20 RxJS 是一个未开发的世界 使用 RxJS 时,我尝试检查 RxJS 运算符的所有参数和重载,原因是许多隐藏的选项可以使你更快地编写更强大的流。...s=20 你甚至可以制作自己的 ngFor 替代品 最后一个:Angular 对于 for...of... 之类的指令特殊的语法。这样,你可以创建自己的 ngFor。...例如,它可以是用于迭代映射的 ngFor一个简单的从一个数字迭代到另一个数字的 for: ? ?

    2.1K40

    Android 一起来看看面试必问的消息机制

    这是因为 Android 的 UI 控件并不是线程安全的,如果在多线程中并发访问可能会导致 UI 控件处于不可预期的状态,那还有一个问题,为什么系统不对 UI 控件的访问加上锁机制呢?...三、Looper 的工作原理 ---- Looper 在 Android 的消息机制中扮演着消息循环的角色,具体来说就是它会不停地从 MessageQueue 中查看是否新的消息,如果有新消息就回立刻处理...public void quitSafely() { mQueue.quit(true); } Looper 最重要的一个方法是 loop() 方法,只有调用了 loop() 后...,消息循环系统才会真正地起作用,Looper 的 loop() 方法的工作过程也比较好理解,loop() 方法是一个死循环,唯一跳出循环的方式是 MessageQueue 返回 null,当 Looper...() 方法进行无限循环,判断 MessageQueue 是否新的消息,有的话就立刻进行处理,否则就一直阻塞在那里,loop() 跳出无限循环的唯一条件是 MessageQueue 返回 null。

    33430

    深入解析Android中Handler消息机制

    Handler的简单使用 为什么系统不允许子线程更新UI 因为的UI控件不是线程安全的。 如果在多线程中并发访问可能会导致UI控件处于不可预期的状态,那为什么不对UI控件的访问加上上锁机制呢?...因为有这么两个缺点: 1.上锁会让UI控件变得复杂和低效 2.上锁后会阻塞某些进程的执行 对于手机系统来说,这两个缺点是不可接受的,所以最简单高效的方法就是 —— 采用单线程模型来处理UI操作...Looper这个类里面最重要的方法就是loop()开启消息循环这个方法了,看一下loop代码的实现逻辑: public static void loop() { final Looper...,唯一跳出的循环的方式是MessageQueue的next方法返回null,但这几乎不可能,因为在MessageQueue的next方法中,假如没有消息加入队列,next方法会一直阻塞,不会返回null...当MessageQueue没有消息时,next方法会一直阻塞在那里,因为MessageQueue的next方法阻塞了,就导致Looper的loop方法也一直在阻塞了。

    52130

    【Appetite】ionic3实录(六)首页实现

    前文再续,书接上一回,上上回说到自定义组件,本节应该讲怎么做自定义组件的同时怎么调用的,只是本实例应做自定义组件的好几个,不可能每个都写出来讲解,这会显得冗余了,所以决定只把其中一个较有代表性的做成自定义组件...不知道一个小时能写完,赶上班… 仍然是先上UI设计图: ?..., initialSlide: 0,//初始化显示第几个 zoom: true,//双击,手势缩放 loop: false,//循环切换...用了结构指令ngIf来选择显示视频还是画廊;按钮组可以换用grid布局;此外,为了性能考虑,应用virtualScroll,但我简单一用时布局变形,赶时间没分析,换用现在方式。...实际效果图 因为赶着上班,写得有点急,微调没怎么调,特别是swiper的参数配置中的宽高有点诡异,还没摸清,另外说明内容还要补充一下,晚些再完善。

    1.1K40

    Handler源码和9个常见问题的解答,这些你都掌握了吗?

    Looper死循环为什么不会导致应用卡死,会耗费大量资源吗? 子线程的如何更新UI,比如Dialog,Toast等?系统为什么建议子线程中更新UI? 主线程如何访问网络?...下面这张图就是Handler的工作流程 Handler工作流程图 image.png 可以看到在Thread中,Looper的这个传送带其实就一个死循环,它不断的从消息队列MessageQueue中不断的取消息...在创建Looper的时候也创建了该线程的消息队列,可以看到prepareMainLooper会判断sMainLooper是否,如果调用多次,就会抛出异常,所以也就是说主线程的Looper和MessageQueue...在Looper.loop()的死循环中不断的取消息,最后回收复用。...系统为什么建议在子线程中访问UI? 这是因为 Android 的UI控件不是线程安全的,如果在多线程中并发访问可能会导致UI控件处于不可预期的状态,那么为什么系统不对UI控件的访问加上锁机制呢?

    1.3K00

    ng-content 中隐藏的内容

    如果 ng-content 上没有设置 select 属性,它将接收全部内容,接收匹配任何其他 ng-content 元素的内容。...页面中会显示一个两个框,如果我们包含两个框,它们的内容是显示 1 和 1 1 和 2?...但是如果你通过按钮进行切换操作,你会注意到计数器的不会增加。这意味着我们的计数器组件只被实例化了一次 - 从未被销毁和重新创建。...难道这是 ngIf 指令产生的问题,让我们测试一下 ngFor 指令,看看是否同样的问题: import { Component } from '@angular/core'; @Component...因为 ng-content 只是移动元素,所以可以在编译时完成,而不是在运行时,这大大减少了实际应用程序的工作量。

    2.7K30

    pywinauto桌面应用自动化入门篇

    桌面应用程序自动化,目前做过自动化里头相对来说比较麻烦一些,而且资料不够完善的一套, 因为好多遇到桌面应用自动化,好多都直接不做了。...="uia").start("notepad.exe") 三、元素定位工具介绍 1.Backend判断 我目前接触的是uia的 Pywinauto中backend两种:win32和uia,默认为win32...可使用spy++和Inspect工具判断backend适合写哪种。 例如:如果使用Inspect的UIA模式,可见的控件和属性更多的话,backend可选uia,反之,backend可选win32。...*kwargs) # 返回子元素的迭代器,是BaseWrapper对象(子类) descendants(**kwargs) # 返回符合条件的所有后代元素列表,是BaseWrapper对象(子类)...,# 这个基本不用,每次启动进程都会变化 top_level_only=True, visible_only=True, enabled_only=False, handle=None, ctrl_index

    5.4K20

    Angular 从入坑到挖坑 - 表单控件概览

    之后,NgModel 指令通过更新控件的 css 类,达到反映控件状态的目的 状态 发生时的 css 类 没发生的 css 类 控件被访问 ng-touched ng-untouched 控件发生变化...ng-dirty ng-pristine 控件是否有效 ng-valid ng-invalid ?...通过使用 FormControl 控件的 value 属性,可以获得当前表单控件的一份数据拷贝,通过 setValue 方法则可以更新表单的控件 import { Component, OnInit...使用 FormBuilder 构建的控件,每个控件名对应的都是一个数组,第一个控件的默认,第二项和第三项则是针对这个设定的同步、异步验证方法 import { Component, OnInit...在模板驱动表单中,因为不是直接使用的 FormControl 实例,因此这里应该在模板上添加一个自定义的指令来完成对于控件数据的校验 使用 angular cli 创建一个用来进行表单验证的指令 ng

    18.9K20

    Prism 8.0 入门(上):Prism.Core

    Prism 是一个10年以上历史的框架,而上个月才刚发布了它的 8.0 版本,这意味着现在网上能找到的大部分 Prism 的资料都已经有点过时,连 官方文档 也例外。...CanExecute 返回 DelegateCommand 构造函数中的第二个参数 canExecuteMethod 的返回。如果传入这个参数,则 CanExecute 一直返回 True。...如果 CanExecute 的返回变化,可以调用 RaiseCanExecuteChanged 函数,它会触发 CanExecuteChanged 事件并通知 UI 元素重新判断绑定的 ICommand...设置为 true 时,引用为强引用,用完需要使用 Unsubscribe 取消订阅。...虽然 Prism 框架非常成熟(还有点臃肿),支持插件和定位控件的区域,但 Prism.Core 很轻,仅包含几个常用的类型。

    2.1K40

    想实现安卓队列功能?Handler内功心法,你值得拥有!——Handler源码和常见问题的解答

    Looper死循环为什么不会导致应用卡死,会耗费大量资源吗? 子线程的如何更新UI,比如Dialog,Toast等?系统为什么建议子线程中更新UI? 主线程如何访问网络?...在创建Looper的时候也创建了该线程的消息队列,可以看到prepareMainLooper会判断sMainLooper是否,如果调用多次,就会抛出异常,所以也就是说主线程的Looper和MessageQueue...在Looper.loop()的死循环中不断的取消息,最后回收复用。...系统为什么建议在子线程中访问UI? 这是因为 Android 的UI控件不是线程安全的,如果在多线程中并发访问可能会导致UI控件处于不可预期的状态,那么为什么系统不对UI控件的访问加上锁机制呢?...Android是基于消息处理机制的,用户的行为都在这个Looper循环中,我们在休眠时点击屏幕,便唤醒主线程继续进行工作。 主线程的死循环一直运行是不是特别消耗 CPU 资源呢?

    1.9K20
    领券