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

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 - 表单验证

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

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

相关·内容

Angular: 最佳实践

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

2.9K40

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。

33730
  • 最受欢迎的10大Angular技巧

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

    2.2K40

    在 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="{...最后 这篇文章只介绍了简单的解决方案,最后还是需要根据自己的业务需求进行修改或封装。View 和 ViewModel 交互可以是一个很庞大的话题,下次有机会再深入探讨。 7.

    1.5K40

    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

    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.2K40

    深入理解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函数的返回值,以及很难控制数据安全性。

    34010

    深入解析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方法也一直在阻塞了。

    53630

    当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

    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.8K20

    技术速递|调用异步功能 - WinForms 在 .NET 9 中的未来发展

    为了管理这些操作,UI 线程运行一个循环,称为消息循环(message loop),该循环会持续处理消息——例如按钮点击、屏幕重绘以及其他操作。...方法会立即返回,使调用线程可以继续其工作。这种区别在异步场景中尤为重要,因为它允许应用程序同时处理其他任务而不产生延迟,从而最大限度地减少 UI 线程的瓶颈。...如果您想在 UI 线程上更新控件的属性——例如设置 Label 的 Text 属性——这个重载允许您做到这一点,而无需等待返回值。...当一个异步操作必须在 UI 线程上完成并返回一个值时使用,例如在延迟后查询控件的状态或获取数据以更新 UI。...对于有返回值的同步操作,使用 Func。 对于没有结果的异步操作,使用 Func。 对于有结果的异步操作,使用 Func。

    11910

    ng-content 中隐藏的内容

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

    2.8K30

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

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

    1.2K40

    AngularDart 4.0 高级-结构指令 顶

    它需要一个布尔表达式并使DOM的整个块出现或消失。 true"> 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

    AngularDart4.0 指南- 表单 顶

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

    17.7K30

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

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

    30.1K20

    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

    19K20
    领券
    首页
    学习
    活动
    专区
    圈层
    工具