Передача * ngModel и значения переменной в методе компонента в качестве аргумента без изменений - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть логическая переменная.Я хочу передать эту переменную в методе компонента в качестве параметра метода и изменить его значение.

, но значение не меняется.проверьте текущий код 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);    
            }
        }

здесь isAllSelected является логическим значением

Обновление: что требуется?

Я хочу изменить значение isAllSelected , как текст «Отключить все»не появляется.

Выход

enter image description here

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Вы должны использовать глобальную переменную, так как вы передаете локальную переменную, но изменения не должны отражаться, поскольку привязка выполняется с использованием общедоступных глобальных переменных в Angular.Таким образом, ваш код должен выглядеть следующим образом -

  <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>

Нетнужно вызывать любую функцию.

0 голосов
/ 28 ноября 2018

Попробуйте использовать ключевое слово this, изменив глобальную переменную, а не локальную на ваш метод

selectUnselectAll(isAllSelected){
   this.isAllSelected = !isAllSelected;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...