首页 > 其他分享 >angular组件间的数据输入——input

angular组件间的数据输入——input

时间:2024-11-07 14:41:59浏览次数:1  
标签:学生 score student 组件 input 成绩 angular

原文链接:angular组件间的数据输入——input – 每天进步一点点

0.背景

我们前面一篇文章简单介绍了angular如何引用其他组件,这篇文章简单介绍一下angualr组件之间如何传输数据。

一个使用场景:

我们定义了一个学生组件,学生有自己的姓名、年龄,语文成绩、数学成绩、英语成绩,然后其他地方调用学生组件。

那么会有一个问题,我们可能在很多地方调用学生组件,但是每个学生的姓名年龄不一定相同,如果我们都传入同样的名字那么学生组件显示的时候就一模一样了,为了解决这个问题,我们可以:

1.学生组件内置网络请求,每次打开组件都去后台请求数据然后渲染组件(但是至少要有一个具体的学生标记,比如我们前面说的路由跳转那种,但路由跳转是跳转到新页面,不符合我们要求)

2.组件之间传递参数

我们下面主要说 组件之间如何传递参数

1.input组件传参

我们执行

ng g c student

创建一个学生组件,

HTML文件参考:

<div> <h1>学生姓名:{{name}}</h1> <h2>学生年龄:{{age}}</h2> <h2>语文成绩:{{score.chinese}}</h2> <h2>数学成绩:{{score.math}}</h2> <h2>英语成绩:{{score.english}}</h2> </div>

ts文件参考:

import { Component, Input, OnInit } from '@angular/core';   @Component({ selector: 'app-student', templateUrl: './student.component.html', styleUrls: ['./student.component.css'] }) export class StudentComponent implements OnInit { @Input() name:string //学生姓名 @Input() age:number //学生年龄 //成绩 @Input() score:{ chinese:number //语文成绩 math:number //数学成绩 english:number //英语成绩 }   constructor() { } ngOnInit() { } }

我们参考上面的方式定义了一个学生组件,参数有name,age和score对象。

然后我们在需要的地方引入组件,参考下面这样:

然后运行项目后,页面显示如下:

这是因为我们没有student组件传递参数

我们可以参考下面的方式给student组件传递参数:

<app-student name="张三" age="14" [score]="{ chinese:12, math:143, english:34 }" ></app-student>

对象形式要加“[]”

这种形式我们可以在html中直接传递参数,效果如下:

但是上面这种形式一般不用于实际开发,我们很少在html中直接传递参数, 一般用变量来传递,那么其实很简单,我们在app组件中定义下面这些变量

  myName='李四'
  myAge=14
  myScore={
    myChinese:95,
    myMath:113,
    myEnglish:54,
  }

然后在HTML中参考下面这样引用就能正常使用了

<app-student [name]="myName" [age]="myAge" [score]="{ chinese:myScore.myChinese, math:myScore.myMath, english:myScore.myEnglish }" ></app-student>

效果跟上面类似。

 

标签:学生,score,student,组件,input,成绩,angular
From: https://www.cnblogs.com/longkui-site/p/18532235

相关文章

  • angularJs 之 ng-options 的用法:
     angularjs之ng-optionng-options一般有以下用法:对于数组:labelforvalueinarrayselectaslabelforvalueinarraylabelgroupbygroupforvalueinarraylabeldisablewhendisableforvalueinarraylabelgroupbygroupforvalueinarraytrackbytrackexp......
  • Web组件和WebView 习题答案 <HarmonyOS第一课>
    一、判断题1. Web组件提供具有网页显示能力,@ohos.web.webview提供web控制能力。正确(True)错误(False)回答正确A2. 同一页面的多个Web组件,必须绑定不同的WebviewController。正确(True)错误(False)回答正确A二、单选题1. 下列关于Web组件的属性,描述错误的是?A.......
  • 『玩转Streamlit』--文本与标题组件
    本篇准备开始介绍Streamlit的组件。Streamlit的组件非常多,后续几篇打算按照用途的分类,介绍每个分类中最常用的组件。本次从最简单的组件开始,介绍文本和标题相关的组件,也就是以下4个组件:st.text:用于显示普通的文本内容st.title:用于显示页面的大标题st.header:用于显示一级标题......
  • Avalonia封装实现指定组件允许拖动的工具类
    创建Avalonia的MVVM项目,命名DragDemo,然后将项目的Nuget包更新到预览版 12345678<ItemGroup>        <PackageReferenceInclude="Avalonia"Version="11.0.0-preview5"/>        <PackageReferenceInclude="Avalonia.Desktop&qu......
  • [vant] 最新版使用vw布局+vant组件库兼容方案
    1.安装vw插件npmipostcss-px-to-viewport-8-plugin--save-dev2.配置vite.config.jsimport{defineConfig}from'vite'importvuefrom'@vitejs/plugin-vue'importAutoImportfrom'unplugin-auto-import/vite';importComponen......
  • 高阶组件怎么实现?
    高阶组件(Higher-OrderComponent,HOC)是一种在React中用于重用组件逻辑的模式。它本质上是一个接收一个组件作为参数,并返回一个新的包装组件的函数。以下是一个示例代码,演示了如何实现一个简单的高阶组件:jsximportReactfrom"react";//定义一个高阶组件函数constwithB......
  • 遇到XINPUT1-3.dll未在Windows上指定运行?尝试这些解决方案
    当出现“XINPUT1-3.dll没有被指定在Windows上运行”这样的错误提示时,可能是由于以下几种原因导致的,下面是一些相应的解决方法:一、文件损坏或不兼容1.重新下载DLL文件从可靠的来源获取XINPUT1-3.dll文件。最好是从微软官方网站或者游戏官方网站寻找该文件。避......
  • 前端自学(5)-使用Vue组件库element书写前端代码
    element是饿了么团队研发的,一套为开发者,设计师和产品经理提供的基于Vue2.0的桌面端组件库。官网:Element-网站快速成型工具有了element组件库,开发人员就可以通过CV(复制粘贴。)制作出精美的前端页面。下面是一个简单页面的示例,我将为大家演示如何制作一个这样的页面。1.首......
  • KbdHebL3.dll文件丢失危机?解决KbdHebL3.dll缺失问题:希伯来语键盘布局组件恢复全攻略
    在使用计算机时,有时可能会遇到KbdHebL3.dll文件丢失的问题。KbdHebL3.dll是一个与希伯来语键盘布局相关的动态链接库(DLL)文件,它负责处理希伯来语键盘布局和输入法转换的代码。一旦该文件丢失,将会导致希伯来语键盘布局无法正常使用。以下是一份详细的恢复全攻略,帮助用户解决KbdHe......
  • Bootstrap Blazor自定义图片预览组件
            BootstrapBlazor的官方虽然有提供图片预览组件ImagePreviewer,但是,它是置于窗口顶层的,而且是全屏显示,如果业务中有在预览组件中添加其它功能的需求,它是不支持扩展的。    为此,我参考官方的源码,自己写了一个自定义图片预览组件,文件的源码在下面,可自行......