Angular的提供者:基于@Input()参数动态提供值
创始人
2024-10-24 10:30:56
0次

为了基于 @Input() 参数动态提供值,我们可以使用 @Injectable() 装饰器来创建一个服务。在服务中,我们可以使用 BehaviorSubject 类来创建一个可观察对象,并在组件中订阅该对象。当 @Input() 参数值更改时,我们可以在服务中更新可观察对象,以提供新的值。

以下是示例代码:

生成服务:

import { Injectable } from '@angular/core'; import { BehaviorSubject } from 'rxjs';

@Injectable() export class DataService { private messageSource = new BehaviorSubject('default message'); currentMessage = this.messageSource.asObservable();

constructor() { }

changeMessage(message: string) { this.messageSource.next(message) } }

在组件中订阅服务:

import { Component, OnInit, Input } from '@angular/core'; import { DataService } from '../data.service';

@Component({ selector: 'app-home', template: {{message}} , styleUrls: ['./home.component.css'] }) export class HomeComponent implements OnInit { @Input() name: string; message:string;

constructor(private data: DataService) { }

ngOnInit() { this.data.currentMessage.subscribe(message => this.message = message) }

newMessage() { this.data.changeMessage("Hello from home component") } }

在组件的 HTML 模板中使用 @Input():

当组件的 @Input() 值更改时,我们可以在组件中使用 changeMessage() 方法来更新服务中的数据。

以上就是基于 @Input() 参数动态提供值的Angular解决方法。

相关内容

热门资讯

黑科技辅助!欢乐赢三张(辅助)... 黑科技辅助!欢乐赢三张(辅助),中至南昌卧龙真是真的有透视挂技巧(真的有辅助挂)1、打开软件启动之后...
黑科技作弊器!17麻将(作弊器... 黑科技作弊器!17麻将(作弊器),心悦麻将真是是真的有透视挂脚本(确实有辅助挂)暗藏猫腻,小编详细说...
黑科技作弊器!沐星互娱(作弊器... 黑科技作弊器!沐星互娱(作弊器),扑克棋牌插件总是真的有透视挂app(有辅助挂解惑)1、玩家可以在扑...
黑科技透视挂!八闽掌上麻将(透... 黑科技透视挂!八闽掌上麻将(透视挂),紫锋麻将果然真的有透视挂脚本(详细教程辅助)1)八闽掌上麻将辅...
黑科技开挂!华彩棋牌(开挂),... 黑科技开挂!华彩棋牌(开挂),奉化八扣一贯是真的有透视挂技巧(有辅助挂分析)奉化八扣是不是有人用挂微...
黑科技作弊器!人海大厅(作弊器... 黑科技作弊器!人海大厅(作弊器),捉住捣蛋鸡本来存在有透视挂app(有辅助挂规律)暗藏猫腻,小编详细...
黑科技外挂!同城游牛鬼(外挂)... 黑科技外挂!同城游牛鬼(外挂),大好棋牌一直有透视挂教程(竟然有辅助挂)1、下载好同城游牛鬼脚本下载...
黑科技辅助!酷玩部落电子游戏(... 您好,酷玩部落电子游戏这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩...
黑科技辅助器!乐平讨赏(辅助器... 黑科技辅助器!乐平讨赏(辅助器),老友二打一竟然是真的有透视挂技巧(有辅助挂解惑)1、这是跨平台的老...
黑科技外挂!双喜互娱(外挂),... 黑科技外挂!双喜互娱(外挂),新长虹本来是有透视挂app(确实有辅助挂)亲,关键说明,双喜互娱透视脚...