Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度-如何在下拉菜单中选择值?_Angular_Typescript_Angular Material - Fatal编程技术网

Angular 角度-如何在下拉菜单中选择值?

Angular 角度-如何在下拉菜单中选择值?,angular,typescript,angular-material,Angular,Typescript,Angular Material,目标:我希望能够让用户在下拉列表中单击一个值,该值将根据选择更改他们所在站点的地址 问题:我能让它改变地址,但不管他们做了什么选择,它都能做到。我想让它去一个不同的地址为每个选择 因此,如果他们选择英语,我希望它可以访问site.com/en。如果他们选择西班牙语,我想把它放到site.com/es上 我尝试的是: 我尝试了这个解决方案,它的许多变体如下: 我还查阅了棱角材料文档,但对于本主题所需的所有内容都有点缺乏 为什么不承认具体的选择 HTML: 尝试移动您的选择更改为您的选择,而不是选项

目标:我希望能够让用户在下拉列表中单击一个值,该值将根据选择更改他们所在站点的地址

问题:我能让它改变地址,但不管他们做了什么选择,它都能做到。我想让它去一个不同的地址为每个选择

因此,如果他们选择英语,我希望它可以访问site.com/en。如果他们选择西班牙语,我想把它放到site.com/es上

我尝试的是:

我尝试了这个解决方案,它的许多变体如下: 我还查阅了棱角材料文档,但对于本主题所需的所有内容都有点缺乏

为什么不承认具体的选择

HTML:


尝试移动您的选择更改为您的选择,而不是选项:

<mat-form-field class="right">
      <mat-select (selectionChange)="doSomething($event)">
          <mat-option *ngFor="let language of languages" [value]="language.value" >
              {{language.viewValue}}
          </mat-option>
    </mat-select>
</mat-form-field>

尝试移动您的选择更改为您的选择,而不是选项:

<mat-form-field class="right">
      <mat-select (selectionChange)="doSomething($event)">
          <mat-option *ngFor="let language of languages" [value]="language.value" >
              {{language.viewValue}}
          </mat-option>
    </mat-select>
</mat-form-field>

或者您可以使用ngModel直接访问函数中的值

<mat-form-field class="fullwidth" required>
  <mat-label>Select</mat-label>
  <mat-select [(ngModel)]="selectedItem" (ngModelChange)="onSelectChange(selectedItem)">
    <mat-option *ngFor="let obj of testArray" [value]="obj.value">
      {{obj.name}}
    </mat-option>
  </mat-select>
</mat-form-field>

或者您可以使用ngModel直接访问函数中的值

<mat-form-field class="fullwidth" required>
  <mat-label>Select</mat-label>
  <mat-select [(ngModel)]="selectedItem" (ngModelChange)="onSelectChange(selectedItem)">
    <mat-option *ngFor="let obj of testArray" [value]="obj.value">
      {{obj.name}}
    </mat-option>
  </mat-select>
</mat-form-field>

也许你的导航应该是这个.routerService.navigate['/es'];。控制台中有错误吗?你好@R.Richards,谢谢。我有一些事情要解决的具体地址,但主要的问题是,实际上我不能得到的价值。控制台中没有错误。我放了控制台。日志,但他们没有被击中。一旦我尝试更改方法以检测值,它就不再工作了。这对您有帮助吗:。看起来selectionChange应该在mat select上,而不是mat选项。您的导航可能应该是this.routerService.navigate['/es'];。控制台中有错误吗?你好@R.Richards,谢谢。我有一些事情要解决的具体地址,但主要的问题是,实际上我不能得到的价值。控制台中没有错误。我放了控制台。日志,但他们没有被击中。一旦我尝试更改方法以检测值,它就不再工作了。这对您有帮助吗:。看起来selectionChange应该在mat select上,而不是mat选项上
onSelectChange(value) {
//if value selected is spanish
  if(value == "es")
    this.routerService.navigate(['es/']);
}