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

在angular中使用ngIf,但我得到的绑定不能包含赋值

在Angular中使用ngIf指令时,ngIf的绑定表达式不能包含赋值操作。ngIf指令用于根据条件动态地添加或移除DOM元素。它接受一个布尔类型的表达式作为参数,如果表达式的值为true,则显示绑定的元素,否则隐藏。

ngIf的绑定表达式应该是一个返回布尔值的逻辑判断,例如:

代码语言:txt
复制
<div *ngIf="condition">显示内容</div>

在这个例子中,如果condition的值为true,则显示div元素,否则隐藏。

然而,ngIf的绑定表达式不能包含赋值操作,因为赋值操作是一个语句而不是一个表达式。例如,以下代码是不正确的:

代码语言:txt
复制
<div *ngIf="value = 10">显示内容</div>

在这个例子中,value = 10是一个赋值语句,而不是一个返回布尔值的表达式。如果尝试使用这样的绑定表达式,Angular会抛出一个错误。

如果需要在ngIf中进行赋值操作,可以考虑将赋值操作放在组件的逻辑中,然后在ngIf中使用相应的变量进行判断。例如:

代码语言:txt
复制
<div *ngIf="isValueTen">显示内容</div>
代码语言:txt
复制
export class MyComponent {
  isValueTen: boolean;

  constructor() {
    this.isValueTen = this.getValue() === 10;
  }

  getValue(): number {
    return 10;
  }
}

在这个例子中,通过在组件中进行赋值操作,并将结果存储在isValueTen变量中,然后在ngIf中使用isValueTen进行条件判断。

对于Angular中ngIf的更多信息,请参考腾讯云的Angular文档:ngIf

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

相关·内容

Angular核心概念:数据绑定

{{uname}}">直接在属性上使用 形式2:直接使用[]推荐 注意:属性绑定通常赋值为变量,如果赋值为常量(如字符串常量必须用引号括起来,如<img [src]=“‘…/…/assets/...= false; age = 32; 效果图演示: 特殊选择绑定 Angular指令分三类: 1.组件指令:NGComponent继承自Directive 2.结构型指令:会影响...-- 用ngModel现在不能识别,需要导入依赖 --> 注意:直接使用ngModel会直接报错,原因是没有导入模块...ngModel指令FormsModule模块使用之前必须添加 app.module.ts主模块中导入模块 import {FormsModule} from'@angular/forms'...--Angular专用事件:“模型数据改变”ngModelChange-->> 当前用户绑定{{uname}} ts文件 改变值打印控制台上 uname="dingding";

3.5K10

Angular 显示英雄列表

 src/app/ 文件夹创建一个名叫 mock-heroes.ts 文件。 定义一个包含十个英雄常量数组 HEROES,并导出它。 该文件是这样。...Angular 会把所点击  上 hero 对象传给它,这个 hero 也就是前面 *ngFor 表达式定义那个。...英雄们显示列表,并且所点英雄详情也显示了页面的下方。 修复 - 使用 *ngIf 来隐藏空白细节 该组件应该只有当 selectedHero 存在时才显示所选英雄详情。...为什么这样是正常 当 selectedHero 为 undefined 时,ngIf 从 DOM 移除了英雄详情。因此也就不用担心 selectedHero 绑定了。...用户可以选择一个英雄,并查看该英雄详情。 你使用 *ngFor 显示了一个列表。 你使用 *ngIf 来根据条件包含或排除了一段 HTML。 你可以用 class 绑定来切换 CSS 样式类。

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

    将数据值和一些对于用户行为约束(某个字段必须填啊、某个字段长度超过了长度限制啊)绑定到组件模板,从而完成与用户交互 4.2.1、模板驱动表单双向数据绑定 根模块引入 FormsModule...使用 ngModel 进行模板绑定时,angular form 标签上自动附加了一个 NgForm 指令,因为 NgForm 指令会控制表单带有 ngModel 指令和 name 属性元素,而...name 属性则是 angular 用来注册控件 key,所以表单中使用 ngModel 进行双向数据绑定时,必须要添加 name 属性 4.2.2、跟踪表单控件状态 表单中使用 ngModel...类实例对应于一个表单控件,使用时,通过将控件实例赋值给属性,后续则可以通过监听这个自定义属性来跟踪表单控件值和状态 import { Component, OnInit } from '@angular...模板驱动表单,因为不是直接使用 FormControl 实例,因此这里应该在模板上添加一个自定义指令来完成对于控件数据校验 使用 angular cli 创建一个用来进行表单验证指令 ng

    18.9K20

    Angular 显示英雄列表

     src/app/ 文件夹创建一个名叫 mock-heroes.ts 文件。 定义一个包含十个英雄常量数组 HEROES,并导出它。 该文件是这样。...Angular 会把所点击  上 hero 对象传给它,这个 hero 也就是前面 *ngFor 表达式定义那个。...英雄们显示列表,并且所点英雄详情也显示了页面的下方。 修复 - 使用 *ngIf 来隐藏空白细节 该组件应该只有当 selectedHero 存在时才显示所选英雄详情。...为什么这样是正常 当 selectedHero 为 undefined 时,ngIf 从 DOM 移除了英雄详情。因此也就不用担心 selectedHero 绑定了。...用户可以选择一个英雄,并查看该英雄详情。 你使用 *ngFor 显示了一个列表。 你使用 *ngIf 来根据条件包含或排除了一段 HTML。 你可以用 class 绑定来切换 CSS 样式类。

    4K30

    angular知识点梳理第二篇-基本语法

    angular基本语法,这样有利于后面我们进行梳理别的知识点做一些铺垫 基本语法 常见指令 NgModel NgModel就和vuev-model效果是一致,只是写法会有一些区别,vue是可以直接进行使用...,但是angular我们引入框架一个核心模块FormsModule才可以,该指令就是将数据驱动视图改变!...app.modules.ts引入forms模块 // 核心模块 import { NgModule } from '@angular/core'; //引入forms模块实现数据双向绑定 import...需要使用数据绑定组件进行数据处理 import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-home...:hidden是要区别开,当if判断为false时候,页面上是整个元素都消失了,而不是仅仅隐藏了css样式 需要使用数据绑定组件进行数据处理 import { Component, OnInit

    2.5K30

    Angular 6.x 快速入门

    第二节 - 插值表达式 Angular ,我们可以使用插值语法实现数据绑定。...基础知识 定义组件元信息 Angular ,我们可以使用 Component 装饰器来定义组件元信息: @Component({ selector: 'my-app', // 用于定义组件...name = 'Angular'; } 定义数据接口 TypeScript 接口是一个非常灵活概念,除了可用于对类一部分行为进行抽象外,也可用于对「对象形状(Shape)」进行描述...ngIf 指令语法 ... ngFor 指令简介 该指令用于基于可迭代对象每一项创建相应模板。...2.x', 'Angular 4.x', 'Angular 6.x']; } } 第五节 - 事件绑定 Angular ,我们可以通过 (eventName) 语法,实现事件绑定

    14.1K20

    Angular 2 架构(下)

    通过这种机制,可以从HTML里面取值和赋值,使得数据读写,数据持久化操作变得更加简单快捷。 如图所示,数据绑定语法有四种形式。...保存 双向绑: 使用AngularNgModel指令可以更便捷进行双向绑定。...Angular包含以下三种类型指令: 属性指令:以元素属性形式来使用指令。 结构指令:用来改变DOM树结构 组件:作为指令一个重要子类,组件本质上可以看作是一个带有模板指令。...*ngIf 表示只有选择项存在时,才会包含 SiteDetail 组件。...---- 服务(Services) Angular2服务是封装了某一特定功能,并且可以通过注入方式供他人使用独立模块。 服务分为很多种,包括:值、函数,以及应用所需特性。

    2.2K20

    Angular快速学习笔记(3) -- 组件与模板

    显示数据 Angular 中最典型数据显示方式,就是把 HTML 模板控件绑定Angular 组件属性。...angular提供两种地方存放组件模板 你可以使用 template 属性把它定义为内联, 或者把模板定义一个独立 HTML 文件, 再通过 @Component 装饰器 templateUrl...它是语法不可或缺一部分 通过 NgIf 进行条件显示 有时,应用需要只特定情况下显示视图或视图一部分,这个时候使用ngif,同vue.js里v-if <p *ngIf="heroes.length...Angular 执行这个表达式,并把它赋值绑定目标的属性,这个绑定目标可能是 HTML 元素、组件或指令。 典型表达式上下文就是这个组件实例,它是各种绑定来源。...典型语句上下文就是当前组件实例。 (click)="deleteHero()" deleteHero 就是这个数据绑定组件上一个方法。 模板语句不能引用全局命名空间任何东西。

    15.2K30

    Angular 结构指令模式 - 它们是什么且怎么使用

    Angular ,有两种类型指令。属性指令修改 DOM 元素外观或者行为。结构指令添加或者移除 DOM 元素。 结构指令是 Angular 中最强大特性之一,然而它们却频繁被误解。... Angular ,有三种标准结构化指令。...*ngIf - 根据表达式返回布尔值,有条件地包含一个模版(即条件渲染模版) *ngFor - 遍历数组 *ngSwitch - 渲染每个匹配是图 下面是一个结构化指令例子。...这会将其转换为方括号 [] 属性绑定,比如 [ngIf]。 其余部分,包含类名,插入到 里。...要使用结构指令,我们需要在 HTML 模版添加一个带有指令元素。然后根据我们指令设置条件或者表达式添加、删除或者替换元素。 结构指令例子 我们添加些简单 HTML 代码。

    3.8K20

    AngularDart4.0 指南- 显示数据 顶

    您可以通过将HTML模板控件绑定Angular组件属性来显示数据。 在这个页面,您将创建一个包含英雄列表组件。 您将显示英雄名单列表,并有条件地列表下方显示一条消息。...模板中使用任何Angular指令之前,您需要将它们列组件@Component注解指令参数。...实际应用,大多数绑定是针对更专业化对象。 要将此绑定转换为使用专用对象,请将英雄名称列表转换为Hero对象列表。 为此,你需要一个Hero类。... 不要忘记* ngIf星号(*)。 这是语法重要组成部分。 “模板语法”页面的ngIf部分阅读有关ngIf和*更多信息。...它正在添加和删除DOM段落元素。 这可以提高性能,特别是大型项目中,当有条件地包含或排除大量HTML与许多数据绑定。 试试看。 由于列表中有四个项目,所以应该显示消息。

    5.3K10

    Angular 2 + 折腾记 :(2)初步认识angular2,不一样开发模式

    ; // 声明一个public变量并且赋值 }复制代码 app.module.ts:模块 // 浏览器NG模块 import { BrowserModule } from...,ng2开发模式就是类似一个树,从根节点无限发散 import { NgModule } from '@angular/core'; // 表单模块,比如你要在组件内用到一些表单元素或者数据绑定..., |是管道,支持多个管道,支持内置管道和自定义管道,:跟随是管道参数,后续文档我写一个如何自定义管道文章 []="":绑定组件内值[单向,数据流向视图],指令,原生html控件自身属性[value...绑定赋值条件表达式特殊之处: 不支持: 赋值 (=, +=, -=, ...) new运算符 使用;或,链式表达式 自增或自减操作符 (++和--) 不支持位运算|和& 支持: 逻辑运算(...index 动态渲染(*ngIf) *ngIf="item" : 比如loading到视图全部渲染就经常用到这个,当前不在乎低版本可以用[hidden]来控制切换,因为*ngIf这种动态渲染节点还是有一定性能消耗

    6.2K20

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

    如果名称未能匹配已知指令元素事件或输出属性,则Angular会报告“未知指令”错误。 $event和事件处理语句 事件绑定Angular为目标事件设置了一个事件处理程序。...幸运是,Angular NgModel指令是一个使元素形成双向绑定桥梁。 内置指令 早期版本Angular包含了七十多个内置指令。 社区贡献了更多,并且为内部应用程序创建了无数私人指令。...Angular你不需要这些指令。 通常,您可以使用功能更强大,表现力更强Angular绑定系统获得相同结果。 当你可以写一个简单绑定时为什么要创建一个指令来处理点击呢?...Angular把这条指令翻译成一个围绕宿主元素,然后重复使用这个模板为列表每个英雄创建一组新元素和绑定“结构指令”指南中了解微语法。...接下来部分将介绍这些操作符两个:管道和安全导航操作符。 管道操作符(|) 准备使用绑定之前,表达式结果可能需要进行一些转换。

    29.9K20

    Angular 2.x折腾记 :(2)初步认识angular2,不一样开发模式

    ; // 声明一个public变量并且赋值 } ``` app.module.ts:模块 // 浏览器NG模块 import { BrowserModule } from...,ng2开发模式就是类似一个树,从根节点无限发散 import { NgModule } from '@angular/core'; // 表单模块,比如你要在组件内用到一些表单元素或者数据绑定...[(target)]: 双向数据绑定,视图和数据源同步改动,一般用于表单比较多。 绑定赋值条件表达式特殊之处: 不支持: 赋值 (=, +=, -=, ...)...new运算符 使用;或.链式表达式 自增或自减操作符 (++和--) 不支持位运算|和& 支持: 逻辑运算(|| , &&) 三目运算符( true ?...index 动态渲染(*ngIf) *ngIf="item" : 比如loading到视图全部渲染就经常用到这个,当前不在乎低版本可以用[hidden]来控制切换,因为*ngIf这种动态渲染节点还是有一定性能消耗

    10110

    Angular2 之 结构型指令几个概念

    它仍然附加子啊它所属于DOM元素上,它仍然监听事件。angular会继续检查哪些能影响数据绑定变更。组件原本要做哪些事情仍然进行!它还是占用着那么多资源。...总结 基于上面的利弊分析,无论是我们使用内置指令还是使用自定指令时候,我们应该自己分析提添加、移除元素以及创建和销毁组件后果。...标签 结构型指令,比如ngIf使用HTML 5template标签 完成它们“魔法”。 控制Template标签内DOM添加与显示,模板级别使用。...Angular应用之外,标签默认CSS属性display是none 。 它内容存在于一个隐藏文档片段。...要么显示包含在Template标签,要么隐式使用*这种语法糖去包装在Template标签。它简化了ngIf和ngFor —— 无论是写还是读。

    3K20

    浅谈Angular

    Angular数据绑定: 1.插值表达式 {{}}--括号里可填表达式,不能填语句!...,即Model向View 如果要实现双向绑定,需要使用到ngModel指令 语法: [(ngModel)]='值' ***直接写指令,angularJS里会报错,需要人为引入FormsModule...ng-show本质上设置元素display值为none,只是设置样式,DOM结构还在,而*ngIf是真正意义上从DOM结构移除结构型指令 *ngIf--控制元素显隐性 ?...可以给@Input装饰器内部填写一个元数据,这个值是外部使用名字 内部还是使用原来名字 3.如果想要给指令添加元素绑定事件,需要使用@HostListener装饰器 如果要通过指令控制DOM显隐...,要声明子组件里 2.子向父 -- @Output装饰器声明事件,要声明子组件里 3.兄弟之间 -- 中间人模式 拓展:事件源对象 事件,当前操作那个元素就是事件源。

    4.4K10

    Angular DOM 抽象概述

    这在大多数情况下,是没有问题,但如果我们开发应用要支持跨平台的话,就不能绑定宿主环境为浏览器。...作用 应用层直接操作 DOM,就会造成应用层与渲染层之间强耦合,导致我们应用无法运行在不同环境,如 Web Worker ,因为 Web Worker 环境,是不能操作 DOM。...模板元素是一种机制,允许包含加载页面时不渲染,但又可以随后通过 JavaScript 进行实例化客户端内容。我们可以将模板视作为存储页面上稍后使用一小段内容。...,Angular 为我们开发者提供了 元素, Angular 内部它主要应用在结构指令,比如 *ngIf、*ngFor 等。...浏览器环境,虽然通过 ElementRef nativeElement 属性,我们可以方便地获取对应 DOM 元素,但我们最好不要利用 DOM API 进行 DOM 操作,最好通过 Angular

    3.5K30

    Angular 从入坑到挖坑 - 组件食用指南

    四、Step by Step 4.1、组件与模板 4.1.1、组件基础概念 组件包含了一组特定功能,每个组件功能都单一且独立,可以进行重复使用;组件可以通过 angular cli 进行创建,生成组件位于工作空间...4.1.2、模板绑定语法 angular 应用,组件扮演着控制器或是视图模型作用,创建组件时会关联一个 html 文件,这个 html 文件则是一个基础 angular 模板文件 在这个模板文件...@Input 用来获取数据,@Output 用来向外发送数据 4.4.2、子组件获取父组件信息 父组件,添加对于子组件引用,并将需要传递数据 or 方法绑定到子组件上 传递数据直接将父组件属性值赋值绑定在子组件上属性就可以了...传递方法时,绑定在子组件上属性是父组件方法名称,此处不能加 () ,否则就会直接执行该父组件方法 传递数据给子组件时,也可以通过 this 来指代父组件,从而将整个父组件作为数据绑定子组件上...组件中使用服务 需要使用组件引入服务,然后组件构造函数通过依赖注入方式注入这个服务,就可以组件完成对于这个服务使用 父组件对数据进行赋值,然后调用服务方法改变数据信息

    15.8K30

    AngularDart4.0 指南-体系结构概述 顶

    您可以通过使用Angular标记组合HTML 模板,编写组件类来管理这些模板,服务添加应用程序逻辑以及模块中装入组件和服务来编写Angular应用程序。 然后,通过引导根模块启动应用程序。...当用户点击英雄名字时,(click)事件绑定调用组件selectHero方法。 双向数据绑定是一个重要第四种形式,它使用ngModel指令将属性和事件绑定在一个符号。..."> 双向绑定,与属性绑定一样,数据属性值将从组件输入到输入框。...它们倾向于以属性形式出现在元素标签内,有时候以名称形式出现,但更常见是作为赋值绑定目标。 结构指令通过添加,删除和替换DOM元素来改变布局。...= null"> * ngFor告诉Angular英雄列表中标出每个英雄一个。 * ngIf仅在选择英雄存在时才包含HeroDetail组件。

    7.9K30

    AngularDart 4.0 高级-结构指令 顶

    三种常见内置结构指令 - NgIf,NgFor和NgSwitch ... - 模板语法指南中进行了描述,并在整个Angular文档示例中进行了介绍。...它一直倾听事件。 Angular不断检查可能会影响数据绑定更改。 无论组件在做什么,它都会继续这样做。 虽然看不见,但组件及其所有后代组件都会占用资源。...您可以分配给ngFor字符串启用这些功能,这是您在Angularmicrosyntax编写。...当你编写自己结构指令时,可以使用这些微观语法机制。 研究NgIf和NgFor源代码是了解更多信息好方法。 模板输入变量 模板输入变量是一个变量,其值可以模板单个实例引用。...满足Angular模板类似需求。 编写一个结构指令 本节,您将编写一个与NgIf相反UnlessDirective结构指令。 NgIf条件为true时显示模板内容。

    16.1K20
    领券