js实现confirm改变button内容_Angular Dialog 组件的设计与实现

本文介绍了基于Angular开发的yycf-dialog组件库,包括Loading、Message和Confirm组件。组件采用TypeScript和RxJS实现,并在npm市场获得高下载量。文章详细讲解了Service类和服务组件的实现,并提供了安装和使用示例。此外,还分享了作者参与的其他开源项目。
摘要由CSDN通过智能技术生成

8d0360c005052d9ae054d23449f81b9a.png

你好,我是燕云长风。
寓意:结合李白著名的边塞诗《关山月》取【燕云长风】—— 长风几万里,吹度玉门关。

yycf-dialog 是一个基于Angular开发的通用业务组件库,包含Loading, Message 和 Confirm。前端技术栈:Angular,TypeScript,RxJS 高级实现了此dialog组件,组件发布到 npm 市场两天后,下载量达到710,以此为契机,希望让更多的人来了解和使用。(2019-06-07 18:25 已发布最新10.0.0版本即Angular 8.0 组件)

为了让大家更加直观了解,我截取了一组在线运行图:

3073569d4b937d3376679933f4715d98.png
这是loading正在加载的效果

2d2f30e20c2e1d604195d1674375fbea.png
这是confirm的效果

a3af52fd8f67a202f319a767919532b3.png
这是message的效果

安装:

 npm install yycf-dialog

使用:

import { DialogModule, DialogService} from 'yycf-dialog/components';

<yycf-dialog [key]="'1'"></yycf-dialog>
<yycf-dialog [key]="'2'"></yycf-dialog>
<yycf-dialog [key]="'3'"></yycf-dialog>

//自定义的footer button 需要自定义button样式,或者直接使用其他组件库的button
<yycf-dialog [key]="'4'" #ct>
  <yycf-footer>
    <button class="customButtonClass" (click)="ct.accept()">确定<button>
    <button class="customButtonclass" (click)="ct.reject()">取消<button>
  <yycf-footer>
<yycf-dialog>

export class DialogDemo  implements OnInit{ 
           
    constructor(private dialog: DialogService) {}
 
    ngOnInit(){
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Vue.js 2.x 中,如果你想要从子组件的 `el-dialog` 组件传递数据到父组件,通常可以使用事件(Event)和 prop(属性)的方式来实现。这里是一个简单的步骤: 1. **父组件** (`Parent.vue`) 中创建一个 `dialog` 对象,并设置关闭时触发的自定义事件,比如 `closeDialog`: ```html <template> <el-dialog v-model="dialogVisible" @close="handleCloseDialog"> <!-- 子组件内容 --> <ChildComponent :data-to-pass="dialogData"></ChildComponent> <div slot="footer"> <el-button type="primary" @click="handleConfirm">确定</el-button> <el-button @click="handleCancel">取消</el-button> </div> </el-dialog> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent, }, data() { return { dialogVisible: false, dialogData: '', }; }, methods: { handleCloseDialog() { this.$emit('closeDialog', { data: this.dialogData }); // 或者直接更新父组件状态,这取决于是否需要处理异步操作 this.dialogData = ''; }, handleConfirm() { // 这里假设你在确认按钮的回调中有数据变化 this.dialogData = '这是来自子组件的数据'; }, handleCancel() { // 取消操作不需要传递数据 }, }, }; </script> ``` 2. **子组件** (`ChildComponent.vue`) 接收并处理这个事件,当点击确定时将数据通过 prop 传回父组件: ```html <template> <el-dialog> <!-- ... --> <el-button @click="$emit('confirm', '子组件数据')">确定</el-button> </el-dialog> </template> <script> export default { name: 'ChildComponent', props: { dataToPass: { type: String, default: '', }, }, methods: { confirmData() { this.$emit('confirm', this.dataToPass); // 发送数据给父组件 }, }, }; </script> ``` 当你在子组件点击确定时,会触发 `confirm` 事件并将数据传递给父组件,父组件的 `handleConfirm` 方法会被调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值