代码之家  ›  专栏  ›  技术社区  ›  Code Spy

将组件方法中的*ngmodel和变量值作为参数传递而不更改

  •  0
  • Code Spy  · 技术社区  · 6 年前

    我有一个布尔变量。我想将这个变量作为方法参数传递到component方法中并更改它的值。

    但价值并没有改变。检查下面的M当前代码。

    HTML

          <li class="list-group-item" (click)="selectUnselectAll(isAllSelected)">
            <span *ngIf="isAllSelected;else noneSelected">UnSelect All</span>
            <ng-template #noneSelected>Select All</ng-template>
          </li>
    

    成分

            import { Component } from '@angular/core';
    
            @Component({
                selector: 'app-root',
                templateUrl: './app.component.html',
                styleUrls: ['./app.component.scss']
            })
            export class AppComponent {
                isAllSelected:boolean;
    
                constructor() {
                    this.isAllSelected = false;
                }
    
    
                selectUnselectAll(isAllSelected){
                    console.log(isAllSelected);    
                    isAllSelected = !isAllSelected;
                    console.log(isAllSelected);    
                }
            }
    

    在这里 被选中 是布尔函数

    更新:需要什么?

    我想改变 被选中 ,因为不会显示“全部取消选择”文本。

    产量

    enter image description here

    2 回复  |  直到 6 年前
        1
  •  0
  •   John    6 年前

    尝试使用 this -关键字,更改全局变量,而不是将局部变量更改为方法

    selectUnselectAll(isAllSelected){
       this.isAllSelected = !isAllSelected;
    }
    
        2
  •  0
  •   Pardeep Jain    6 年前

    在传递局部变量时应使用全局变量,但不应使用未被反射的更改,因为绑定是使用角度中的公共全局变量完成的。所以你的代码应该是这样的-

      <li class="list-group-item" (click)="selectUnselectAll()">
            <span *ngIf="isAllSelected;else noneSelected">UnSelect All</span>
            <ng-template #noneSelected>Select All</ng-template>
          </li>
    
          selectUnselectAll(){
              this.isAllSelected = !this.isAllSelected;
          }
    

    或 如果你 不想使用全局变量 那就这样做-

    <li class="list-group-item" (click)="isAllSelected = !isAllSelected">
        <span *ngIf="isAllSelected;else noneSelected">UnSelect All</span>
        <ng-template #noneSelected>Select All</ng-template>
      </li>
    

    不需要调用任何函数。