为 Angular 2 中的 mat-table 中实现的 mat-select 分配所需的值

2023-12-07

我在 Angular 2 中创建了一个简单的垫子表,有两列acc_id and acc_desc.

我正在从我的帐户详细信息.json使用以下命令将文件放置在资产文件夹中accountdetails.service.ts.

我已经在下拉菜单中选择了账户描述栏列出的值acc_desc .

下面显示的是我的输出

enter image description here

但在我的表中,我想根据 json 文件中的 acc_id 初始化 acc_desc 值,并在下拉列表中列出,以便在需要时我可以将其更改为其他选项。

下面显示的是我的代码

account.component.html

<mat-toolbar color="primary" style="width:100%"> WELCOME </mat-toolbar><br/>

<!-- Table starts here -->

<mat-card>
<div class="example-container mat-elevation-z8">

  <mat-table #table [dataSource]="dataSource1">

    <!-- Account No. Column -->
    <ng-container matColumnDef="acc_id">
      <mat-header-cell *matHeaderCellDef> Account ID. </mat-header-cell>
      <mat-cell *matCellDef="let element">{{element.acc_id}}</mat-cell>
    </ng-container>

      <!-- Account Description Column -->
    <ng-container matColumnDef="acc_desc">
      <mat-header-cell *matHeaderCellDef> Account Description </mat-header-cell>
      <mat-cell *matCellDef="let element">
          <mat-form-field >
            <mat-select style="min-width: 200px;" placeholder="" >
              <mat-option *ngFor="let dep of acc_desc " [value]="acc_desc" >
                {{ dep.acc_desc }}
              </mat-option>
            </mat-select>
          </mat-form-field>
      </mat-cell>
       </ng-container>


    <mat-header-row *matHeaderRowDef="displayedColumns1" ></mat-header-row>
    <mat-row *matRowDef="let row; columns: displayedColumns1;"> </mat-row>
  </mat-table>

  <mat-paginator #paginator
                 [pageSize]="10"
                 [pageSizeOptions]="[5, 10, 20]">
  </mat-paginator>
</div>
</mat-card>

account.component.ts

import {Component, ViewChild, Inject, OnInit} from '@angular/core';
import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import {MatPaginator, MatTableDataSource} from '@angular/material';
import { AccountdetailService } from '../accountdetail.service';

@Component({
  selector: 'app-account',
  templateUrl: './account.component.html',
  styleUrls: ['./account.component.scss']
   })


export class AccountComponent implements OnInit {

acc_desc: any;

constructor(private accdetailservice: AccountdetailService ) { }


  /* Table Starts here
  ---------------------- */

 displayedColumns1 = ['acc_id', 'acc_desc'];
 dataSource1= new MatTableDataSource<Element>(ELEMENT_DATA);

ngOnInit(){
  this.accdetailservice.accountdetails()
  .subscribe(data => {
     this.acc_desc = data;
     this.dataSource1.data = data;
  }); }

  @ViewChild(MatPaginator) paginator: MatPaginator;

   ngAfterViewInit() {
    this.dataSource1.paginator = this.paginator;
  } }

  export interface Element {
   acc_id: any;
   acc_desc: any; 
  }

const ELEMENT_DATA: Element[] = [];

accountdetails.service.ts

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';


@Injectable()
export class AccountdetailService {

  constructor(private http:Http ) { }

  accountdetails()
  {
    return this.http.get('/assets/accountdetails.json')
    .map(result => result.json());
  }}

accountdetails.json

[
    {
        "acc_id": 1001,
        "acc_desc": "Administration"
    },

    {
        "acc_id": 1002,
        "acc_desc": "Laboratory"
    },

    {
        "acc_id": 1003,
        "acc_desc": "Staff"
    },

    {
        "acc_id": 1004,
        "acc_desc": "Office-1"
    },

    {
        "acc_id": 1005,
        "acc_desc": "Office-2"
    }
]

app.module.ts

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { ReactiveFormsModule, FormsModule} from '@angular/forms';
import { HttpModule} from '@angular/http';

import { AppMaterialModule } from './app-material.module';


import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { AccountComponent } from './account/account.component';

import { AccountdetailService } from './accountdetail.service';


@NgModule({
  declarations: [
    AppComponent,
    AccountComponent      
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    ReactiveFormsModule,
    BrowserAnimationsModule,
    AppMaterialModule,
    FormsModule ,
    HttpModule   
  ],
  entryComponents:[ ],

  providers: [ AccountdetailService],
  bootstrap: [AppComponent]
})
export class AppModule { }

谁能告诉我如何使用我的 json 文件中列出的 acc_desc 初始化相应 acc_id 的值,并使用下拉列表选择所需的值。

提前致谢...


您必须将变量绑定到mat-select组件并修复value of mat-option.

<mat-select style="min-width: 200px;" placeholder="" [(value)]="element.acc_desc" >
   <mat-option *ngFor="let dep of acc_desc " [value]="dep.acc_desc" >
     {{ dep.acc_desc }}
   </mat-option>
</mat-select>

样本 :https://stackblitz.com/edit/angular-isif36?file=app%2Fselect-value-binding-example.ts

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为 Angular 2 中的 mat-table 中实现的 mat-select 分配所需的值 的相关文章

随机推荐

  • 为什么 PowerShellWhere-Object 在传递变量时不起作用?

    功能 function findf Write Host Find files that match args gci r Where Object name match args 似乎不起作用 例如 findf exe 打印一堆内容 不限
  • 如何实现python在xml标签之间查找值?

    我正在使用 google 网站检索天气信息 我想查找 XML 标签之间的值 以下代码为我提供了城市的天气状况 但我无法获取其他参数 例如温度 并且如果可能的话请解释代码中隐含的 split 函数的工作原理 import urllib def
  • 无法让 gulp-rev-replace 与 gulp-useref 一起使用

    继续我之前的question 但这一次是下一步 让文件修订生效 我正在使用 Gulp 学习 johnpapa 的自动化课程 但似乎遇到了另一堵墙 这就是当您尝试将简洁的课程适应不同的文件结构时所得到的结果 P 基本上 问题是我确实得到了以修
  • 从 htmlService 执行时函数不会运行?

    我试图在 htmlService modalDialog 打开 5 秒后切换当前工作表 因为某些原因SwitchToSheet1 不起作用 gs function openModal var ui SpreadsheetApp getUi
  • Javascript Es6 标记模板 - 何时使用 raw?什么时候用熟的?

    研究完这个 Es6 标签模板示例后 var yo func x y n x y one public node es6 6to5 tag js use strict var taggedTemplateLiteral function st
  • Typescript React - 找不到模块“react-materialize”的声明文件。 'path/to/module-name.js' 隐式具有任何类型

    我正在尝试从 React Materialize 导入组件 import Navbar NavItem from react materialize 但是当 webpack 编译我的 tsx它会抛出上述错误 ERROR in src com
  • 在 AWS AppSync 上创建关系的突变

    我一直在尝试运行突变来创建与两种不同类型的关系 但没有取得太大成功 架构 我已使用 创建资源 在 DynamoDB 中创建表 type Comment eventId ID commentId String content String t
  • fgets 并处理 CTRL+D 输入

    I am grabbing some standard input from the user and if the user presses CTRL D I want to display an error and terminate
  • MySQL在插入更新列之前触发新的自动增量ID

    我想用国家 地区代码和新的代码更新表中的列id这是一个自动递增值 BEGIN SET new key concat new countryCode new id END countryCode工作正常 但是id始终为空白 我怎样才能实现这样
  • if-let Any 到 RawRepresentable

    让我们假设一下 enum MyEnum String case value let possibleEnum Any MyEnum value if let str stringFromPossibleEnum possibleEnum p
  • 使用 boto3 和 python 将 AWS EC2 详细信息导出到 xlsx/csv

    我是 python 和 boto3 的新手 我需要使用 python 获取以下详细信息 我使用 bash 来获取这些详细信息 bin bash aws ec2 describe instances query Reservations In
  • 为什么从移动设备触发时我的触发状态为“已暂停”

    我使用 Google 表格中的数据验证实现了按钮单击解决方法功能 并且每当从移动设备执行触发器时 它都处于 暂停 状态 当执行此触发器时 我将显示对话框 当从浏览器执行时 该对话框工作得非常好 代码片段 function onSheetEd
  • Python3 PIL Pillow Ubuntu 安装

    我正在运行 Ubuntu 14 04 LTS 我安装了 Python 2 7 和 Python 3 4 在 Linux 中安装 Python 包方面我还算新手 我只是想安装并访问PIL sPython 3 4 中的图像库 据我了解 这是通过
  • DocumentDB 性能问题

    当在我的本地计算机上通过 C 代码运行 DocumentDB 查询时 一个简单的 DocumentDB 查询平均需要大约 0 5 秒 另一个例子 获取对文档集合的引用平均大约需要 0 7 秒 这是可以预料的吗 下面是我用于检查集合是否存在的
  • 如何使用 C++ 11 创建计时器事件?

    如何使用 C 11 创建计时器事件 我需要这样的东西 从现在起 1 秒后给我打电话 有图书馆吗 做了一个简单的实现 我相信这是你想要实现的目标 您可以使用该类later具有以下参数 int 等待运行代码的毫秒数 bool 如果为 true
  • Zend Framework 2 - 翻译路线

    我想知道是否可以在 zf2 中使用路由 uri 的翻译工具 我想要例如路线en domain tld article show 1例如翻译为de domain tld artikel anzeigen 1 我不认为正则表达式是这里的方法 因
  • Gradle tomcat 插件和属性文件

    我想使用 gradle tomcat 插件来与 gradle 进行集成测试 当前项目依赖于正在运行的 tomcat 的 catalina base 目录下的一些 properties 文件 无法更改 因为另一个依赖项目也依赖于它们 有人知道
  • 如果一个元素满足 dplyr 中的条件,则过滤所有组

    我有以下数据 df1 lt data frame id c 1 1 2 a c a b c gt df1 id a 1 1 a 2 1 b 3 2 c 如果组中至少一个元素满足给定条件 我想过滤 删除 在变量上定义的组的所有元素 此处 如果
  • 在Airflow中创建动态池

    我有一个 DAG 它创建一个集群 启动计算任务 并在完成后拆除该集群 我想将该集群上执行的计算任务的并发限制为固定数量 因此从逻辑上讲 我需要一个由任务创建的集群专用的池 我不希望干扰其他 DAG 或同一 DAG 的不同运行 我认为我可以通
  • 为 Angular 2 中的 mat-table 中实现的 mat-select 分配所需的值

    我在 Angular 2 中创建了一个简单的垫子表 有两列acc id and acc desc 我正在从我的帐户详细信息 json使用以下命令将文件放置在资产文件夹中accountdetails service ts 我已经在下拉菜单中选