Добавление и удаление класса начальной загрузки при разделении при нажатии кнопки мыши в angular 7 с использованием средства визуализации

Я новичок в Angular 7, пытался внедрить функцию, но застрял. Есть три подразделения: левое, правое и среднее. средний раздел содержит еще 2 подразделения внутри, и эти 2 подразделения содержат кнопку внутри них. Я применил класс col-md-6 к среднему делению, и всякий раз, когда я нажимаю левую кнопку внутри среднего div, я хочу, чтобы левое деление было скрыто, и изменил класс среднего div с col-md-6 на col-md-9 и если скрыты и левый, и правый div, я хочу, чтобы класс среднего div изменился с col-md-9 на col-md-12. Я пробовал использовать Renderer2, используя addClass () и removeClass (). Он работает с hostlistener всякий раз, когда я нажимаю на элемент хоста. Но я хочу, чтобы эта функция работала всякий раз, когда я нажимаю кнопку. Если есть какой-либо другой метод достижения этого, то, пожалуйста, предложите использовать Elementref или renderer2.

home-page.component.html



**left division**

<div class = "col-md-3 sidebar" #leftBar style = "background-color: #F8F4F4;">
</div>


** middle div**

<div class = "md-center col-md-6"  id = "content" #content>

    **left button**


    <div class = "btn toggle-sidebar-left"  #t1 appSideBar> 
      <mat-icon> {{!leftBarHidden ? 'chevron_left' : 'chevron_right' }} 
      </maticon>
    </div>


    ** right button **
    <div class = "btn toggle-sidebar-left" (click) = "hide()" #t1>
        <mat-icon>
            {{!leftBarHidden ? 'chevron_left' : 'chevron_right' }}
        </mat-icon>
   </div>

</div>

**right div**
<div class = "col-md-3 sidebar scrollbar" *ngIf = "!rightBarHidden" id = "sidebar- 
  right" style = "background-color: #F8F4F4;">

</div>

home-page.component.ts

import { AfterViewInit, Component, OnInit, Input, Renderer2, ElementRef, 
ViewChild, HostListener, ViewChildren } from '@angular/core';
import {  Router } from '@angular/router';
import { SideBarDirective } from './appSideBar';


@Component({
  selector: 'app-home-page',
  templateUrl: './home-page.component.html',
  styleUrls: ['./home-page.component.css']
 })
 export class HomePageComponent implements OnInit, AfterViewInit {

  rightBarHidden = false;
  leftBarHidden = false;

  constructor(private router: Router, private render: Renderer2, 
          private el: Elemen Ref) { }

 @ViewChild('leftBar') LeftBar:ElementRef; // leftbar is variable for 
 accessing left div.

 @ViewChild('content') content:ElementRef; // content is variable for middle 
 div
 @ViewChild('t1') t1:ElementRef;  //t1 is variable for left button inside 
  middle div

 @HostListener('click')
 onclick() {
  this.leftBarHidden = !this.leftBarHidden;

 if (this.leftBarHidden)
     {
       const b = this.LeftBar.nativeElement;
       this.render.removeStyle(b, 'display');

      this.render.setStyle(b, 'display', 'none');

      const b = this.LeftBar.nativeElement;
      const c=this.render.parentNode(this.t1.nativeElement);
      this.render.removeClass(c,'col-md-6');
     this.render.addClass(c,'col-md-9');
    this.render.removeClass(this.content.nativeElement, 'col-md-6');
    this.render.addClass(this.content.nativeElement, 'col-md-9');


 }

 else {
       this.render.removeStyle(b, 'display');
       this.render.setStyle(b, 'display', 'block');
       console.info(b);
     }
 }

Используйте [ngClass] angular.io/api/common/NgClass и * ngIf angular.io/api/common/NgIf

Eliseo 13.12.2018 10:31

уже пробовал этот метод, но не работает.

Divyansh 13.12.2018 13:07

в stackblitz.com/edit/… я поместил простой пример. Я не знаю, поможет ли это вам :(

Eliseo 13.12.2018 15:12

попробовал сделать то, что вы предложили, все еще не сработало, кстати, спасибо ..

Divyansh 14.12.2018 07:41
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
150
0

Другие вопросы по теме