Angular 数据绑定

作者 : 慕源网 本文共1781个字,预计阅读时间需要5分钟 发布时间: 2022-01-24 共456人阅读

介绍

绑定基本上是在应用程序的视图和它的代码之间连接数据的过程。

在 Angular 中,应用程序的视图是 HTML 页面,后面的代码是用 typescript 代码编写的 Component 类。

Angular中有不同类型的数据绑定,

使用插值查看的组件

这是 Angular 框架提供的绑定方式之一。对于这个,我们需要在 Component 类中有一个类级别的属性,我们在 HTML 中使用双花括号。

例如,下面的代码片段显示了组件类中的一段代码。有 3 个属性:department、imgURL 和

showpinner,其中 imgURL 和 showpinner 已经初始化,而department 只是声明。

department: Any;  
imgURL: string = "assets/photos/Department.jpg";  
showSpinner: boolean = false;   

在我们的 HTML 文件中,这些属性在双花括号内用于直接在浏览器上呈现这些值。在我们的例子中,imgURL 代表图像的来源,因此必须以下面的方式使用,如下面的代码片段所示。

<image src = {{imgURL}} >  

当应用程序在浏览器上呈现时,{{imgURL}} 被替换为 assets/photos/Department.jpg。

在实时应用程序中,此属性在运行时动态初始化。

使用属性绑定查看组件

就像插值一样,这是另一种单向绑定。就像前面的一样,在属性绑定中,我们也需要一个类级别的属性,该属性必须与视图上的 HTML 控件绑定。但是,语法有点不同。

让我们使用相同的示例来应用属性绑定。

department: Any;  
imgURL: string = "assets/photos/Department.jpg";  
showSpinner: boolean = false;  
要使用属性绑定,我们需要使用以下语法。我们需要将 HTML 控件的属性括在方括号内,并将 Component 属性括在引号内。
<image [src] = 'imgURL' >  
注意
在 UI 上渲染数据时,插值将数据转换为字符串,而属性绑定不会更改类型并按原样渲染。

使用事件绑定查看到组件

这种类型的绑定用于将数据从视图绑定到组件,即从 HTML 页面绑定到组件类。这一个类似于简单的javascript的事件。它可以是一个简单的点击事件、一个按键或任何其他事件。唯一的区别是 Angular 中的事件必须放在圆括号内,其余的都是一样的。

如以下代码片段所示,有 3 个按钮及其各自的点击事件。处理这些事件的方法在代码隐藏文件中。

<button (click) = 'addDepartment()' >Add </button>  
<button (click) = 'editDepartment()' >Edit </button>  
<button (click) = 'deleteDepartment()' >Delete </button> 

同时绑定视图和组件(双向绑定)

这种类型的绑定与其他框架略有不同。双向绑定使 Component 类中的属性与 HTML 控件的值保持同步。每当我们改变 HTML 控件的值时,Component 类的属性值也会随之改变

为了在 Angular 中实现这种类型的绑定,我们使用了一个语法稍有不同的特殊指令。

<input required [(ngModel)] = 'departmentName' name = 'departmentName' >  

正如您在上面的代码片段中看到的,在 2 种类型的大括号中使用了指令ngModel 。两个大括号表示两个不同的绑定。方括号用于我们讨论的第二种类型的属性绑定,圆形用于事件绑定,第三种

我们讨论过的。 

让我们稍微谈谈这个文本框,只要这个文本框的值发生任何变化,就会触发一个事件,并且通过事件绑定,值会被传递给 Component 属性并得到更新,同样每当有任何变化时在属性值中,文本框的值也将通过属性绑定的方式得到更新。上面代码中与此文本框关联的 Component 属性是departmentName

举个例子,当我们通过 API 调用获取一些数据时,一开始文本框不会有任何值,但是一旦 Component 类中的属性值更新,文本框的值也会得到同时更新。

注意
为了使用[(ngModel)]进行双向绑定,name 属性是必须的。Angular 框架在内部使用name属性来映射 HTML 控件的值和 Component 属性。

 


慕源网 » Angular 数据绑定

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录