কৌণিক: * এনজিক্লাস সহ শর্তসাপেক্ষ শ্রেণি


561

আমার কৌনিক কোডটি কী ভুল? আমি পাচ্ছি:

Cannot read property 'remove' of undefined at BrowserDomAdapter.removeClass ...

এইচটিএমএল

<ol class="breadcrumb">
    <li *ngClass="{active: step==='step1'}" (click)="step='step1; '">Step1</li>
    <li *ngClass="{active: step==='step2'}"  (click)="step='step2'">Step2</li>
    <li *ngClass="{active: step==='step3'}" (click)="step='step3'">Step3</li>
</ol>

উত্তর:


1220

কৌনিক সংস্করণ 2, ..., 9 শর্তাধীন শ্রেণিগুলি যুক্ত করার বিভিন্ন উপায় সরবরাহ করে:

টাইপ এক

[class.my-class]="step === 'step1'"

টাইপ দুই

[ngClass]="{'my-class': step === 'step1'}"

এবং একাধিক বিকল্প:

[ngClass]="{'my-class': step === 'step1', 'my-class2':step === 'step2' }"

টাইপ তিন

[ngClass]="{1:'my-class1',2:'my-class2',3:'my-class4'}[step]"

টাইপ ফোর

[ngClass]="(step=='step1')?'my-class1':'my-class2'"

7
নিখুঁত উত্তর, কেবল 2 থেকে টাইপটি ঠিক করুন: [ngClass] = "my 'আমার-শ্রেণি': ধাপ == 'পদক্ষেপ 1'}" শ্রেণীর নাম দিয়ে '
— অ্যাড্রিয়ানো গ্যালেসো আলভেস

2
টাইপ থ্রি-র জন্য, শ্রেণীর নাম এবং চেকের ক্রমটি ভুল। এটি প্রথম শ্রেণীর নাম হওয়া উচিত যেমন [ngClass] = "my 'আমার-শ্রেণি 1': 1, 'আমার-
— শ্রেণি

1
দেখে মনে হচ্ছে "টাইপ থ্রি" এবং "টাইপ [ngClass]="js expression returning html class string"
— ফোর

1
ধন্যবাদ মানুষ .. আপনি দুর্দান্ত
— প্রণব এমএস

1
পারফেক্ট উত্তর সাথী। অনেক ধন্যবাদ !
— অঞ্জনা সিলভা

422

[ngClass]=...পরিবর্তে *ngClass।

* কাঠামোগত নির্দেশাবলীর জন্য কেবল সংক্ষিপ্ত আকারের বাক্য গঠন যেখানে আপনি উদাহরণস্বরূপ ব্যবহার করতে পারেন

<div *ngFor="let item of items">{{item}}</div>

পরিবর্তে দীর্ঘ সমতুল্য সংস্করণ

<template ngFor let-item [ngForOf]="items">
  <div>{{item}}</div>
</template>

এছাড়াও https://angular.io/docs/ts/latest/api/common/index/NgClass-directive.html দেখুন

<some-element [ngClass]="'first second'">...</some-element>
<some-element [ngClass]="['first', 'second']">...</some-element>
<some-element [ngClass]="{'first': true, 'second': true, 'third': false}">...</some-element>
<some-element [ngClass]="stringExp|arrayExp|objExp">...</some-element>
<some-element [ngClass]="{'class1 class2 class3' : true}">...</some-element>

Https://angular.io/docs/ts/latest/guide/template-syntax.html এও দেখুন

<!-- toggle the "special" class on/off with a property -->
<div [class.special]="isSpecial">The class binding is special</div>

<!-- binding to `class.special` trumps the class attribute -->
<div class="special"
     [class.special]="!isSpecial">This one is not so special</div>
<!-- reset/override all class names with a binding  -->
<div class="bad curly special"
     [class]="badCurly">Bad curly</div>

1
কৌণিক ডকুমেন্টেশন থেকে: "অস্ট্রাস্টিকটি কিছুটা জটিল জটিল জিনিসের জন্য" সিনট্যাকটিক চিনি "Intern <ng-template> এলিমেন্টে স্থানান্তরিত হয়েছে যেখানে এটি সম্পত্তি বাঁধাই হয়েছে [[ngIf]। - আরো তথ্য @ angular.io/guide/structural-directives#the-asterisk--prefix
— একত্রিত

আসলে, এটি আরও জটিল কিছু নয়, *কেবল কামানিকাল ফর্মের পরিবর্তে একটি সরলিকৃত সিনাক্সের অনুমতি দেয়।
— গন্টার জ্যাচবাউয়ার

75

আরেকটি সমাধান ব্যবহার করা হবে [class.active]।

উদাহরণ:

<ol class="breadcrumb">
    <li [class.active]="step=='step1'" (click)="step='step1'">Step1</li>
</ol>

8
আমি মনে করি এটি গ্রহণযোগ্য উত্তর হওয়া উচিত কারণ এটি এইচটিএমএল ক্লাসটি সেট করার অ্যাঙ্গুলার 2 উপায় (যা আমি জানতাম না এবং গুগল আমাকে এখানে নিয়ে এসেছিল)।
— kub1x

62

এটি সাধারণ কাঠামো ngClassহ'ল:

[ngClass]="{'classname' : condition}"

সুতরাং আপনার ক্ষেত্রে, কেবল এটির মতো ব্যবহার করুন ...

<ol class="breadcrumb">
  <li [ngClass]="{'active': step==='step1'}" (click)="step='step1'">Step1</li>
  <li [ngClass]="{'active': step==='step2'}" (click)="step='step2'">Step2</li>
  <li [ngClass]="{'active': step==='step3'}" (click)="step='step3'">Step3</li>
</ol>

48

নিম্নলিখিত উদাহরণগুলির সাহায্যে আপনি 'যদি ই এল এস ই' ব্যবহার করতে পারেন

<p class="{{condition ? 'checkedClass' : 'uncheckedClass'}}">
<p [ngClass]="condition ? 'checkedClass' : 'uncheckedClass'">
<p [ngClass]="[condition ? 'checkedClass' : 'uncheckedClass']">

1
আমি প্রথম এবং দ্বিতীয় সমাধানটি চেষ্টা করেছিলাম। শুধুমাত্র দ্বিতীয়টি আমার জন্য কাজ করেছে
— ব্যবহারকারীর 1238784

36

আপনি ক্লাসের নামটি উভয় শর্তাধীন এবং কৌণিক ক্ষেত্রে নয় প্রয়োগ করার জন্য এনজি ক্লাস ব্যবহার করতে পারেন

উদাহরণ স্বরূপ

[ngClass]="'someClass'">

শর্তাধীন

[ngClass]="{'someClass': property1.isValid}">

একাধিক শর্ত

 [ngClass]="{'someClass': property1.isValid && property2.isValid}">

পদ্ধতি প্রকাশ

[ngClass]="getSomeClass()"

এই পদ্ধতিটি আপনার উপাদানটির অভ্যন্তরে থাকবে

 getSomeClass(){
        const isValid=this.property1 && this.property2;
        return {someClass1:isValid , someClass2:isValid};
    }


10

ভিতরে Angular 7.X

সিএসএস ক্লাসগুলি এক্সপ্রেশন মূল্যায়নের ধরণের উপর নির্ভর করে নীচে আপডেট করা হয়েছে:

  • স্ট্রিং - স্ট্রিং-এ তালিকাবদ্ধ সিএসএস ক্লাস যুক্ত করা হয়েছে (স্থান সীমান্তে)

  • অ্যারে - অ্যারে উপাদান হিসাবে ঘোষিত সিএসএস ক্লাস যুক্ত করা হয়েছে

  • অবজেক্ট - কীগুলি সিএসএস ক্লাস যা মানটিতে প্রদত্ত এক্সপ্রেশনটি সত্যবাদী মানকে মূল্যায়নের সময় যুক্ত করা হয়, অন্যথায় সেগুলি সরিয়ে ফেলা হয়।

<some-element [ngClass]="'first second'">...</some-element>

<some-element [ngClass]="['first', 'second']">...</some-element>

<some-element [ngClass]="{'first': true, 'second': true, 'third': false}">...</some-element>

<some-element [ngClass]="stringExp|arrayExp|objExp">...</some-element>

<some-element [ngClass]="{'class1 class2 class3' : true}">...</some-element>

6

আমি একটি প্রতিক্রিয়াশীল ফর্ম তৈরি করার সময়, আমাকে বোতামে 2 ধরণের শ্রেণি নির্ধারণ করতে হয়েছিল। এটি আমি এটি করেছিলাম:

<button type="submit" class="btn" [ngClass]="(formGroup.valid)?'btn-info':''" 
[disabled]="!formGroup.valid">Sign in</button>

ফর্মটি বৈধ হলে, বোতামটিতে বিটিএন এবং বিটিএন-শ্রেণি থাকে (বুটস্ট্র্যাপ থেকে), অন্যথায় কেবল বিটিএন ক্লাস হয়।


6

মোস্তাফা মাশায়েখিকে তার উত্তর দুটি বাড়ানোর জন্য বিকল্প দুটি> আপনি একটি ',' দিয়ে একাধিক বিকল্পের শৃঙ্খলা করতে পারেন

[ngClass]="{'my-class': step=='step1', 'my-class2':step=='step2' }"

এছাড়াও * এনজিআইফ সাধারণত কিছু * এনজিফোর্ডের সাথে মিলিত এই পরিস্থিতিতে ব্যবহার করা যেতে পারে

class="mats p" *ngIf="mat=='painted'"

5

অতিরিক্তভাবে, আপনি পদ্ধতি ফাংশন সহ যুক্ত করতে পারেন:

এইচটিএমএলে

<div [ngClass]="setClasses()">...</div>

घटक.ts এ

// Set Dynamic Classes
  setClasses() {
    let classes = {
      constantClass: true,
      'conditional-class': this.item.id === 1
    }

    return classes;
  }


4

ngClass বাক্য গঠন:

[ngClass]="{'classname' : conditionFlag}"

আপনি এটির মতো ব্যবহার করতে পারেন:

<ol class="breadcrumb">
  <li [ngClass]="{'active': step==='step1'}" (click)="step='step1'">Step1</li>
  <li [ngClass]="{'active': step==='step2'}" (click)="step='step2'">Step2</li>
  <li [ngClass]="{'active': step==='step3'}" (click)="step='step3'">Step3</li>
</ol>


4

আপনি [ngClass] বা [class.classname] ব্যবহার করতে পারেন, উভয়ই একই কাজ করবে।
[class.my-class]="step==='step1'"

   অথবা

[ngClass]="{'my-class': step=='step1'}"

দুজনেই একই কাজ করবে!


1

[ngClass]নির্দেশের সাথে প্রাসঙ্গিক নয় তবে আমিও একই ত্রুটি পেয়ে যাচ্ছিলাম

অপরিশোধিত এর সম্পত্তি 'অপসারণ' পড়তে পারে না ...

এবং আমি আমার [ngClass]অবস্থার ত্রুটি বলে ভেবেছিলাম কিন্তু এটি যে অবস্থাতে অ্যাক্সেস করার চেষ্টা করছিলাম সে [ngClass]জায়গাটি আরম্ভ হয় নি।

আমার টাইপ স্ক্রিপ্ট ফাইলে এটির মতো ছিল

element: {type: string};

এবং আমার [ngClass]ব্যবহার ছিল

[ngClass]="{'active', element.type === 'active'}"

এবং আমি ত্রুটি পেয়েছিলাম

এখানে সংজ্ঞায়িত এর ধরণের 'ধরণ' পড়া যায় না ...

এবং সমাধানটি ছিল আমার সম্পত্তি ঠিক করা

element: {type: string} = {type: 'active'};

আশা করি এটি এমন কোনও ব্যক্তিকে সহায়তা করেছে যা কোনও সম্পত্তির শর্তের সাথে মেলে চেষ্টা করছে [ngClass]


1

<div class="collapse in " [ngClass]="(active_tab=='assignservice' || active_tab=='manage')?'show':''" id="collapseExampleOrganization" aria-expanded="true" style="">
 <ul> 	 <li class="nav-item" [ngClass]="{'active': active_tab=='manage'}">
<a routerLink="/main/organization/manage" (click)="activemenu('manage')"> <i class="la la-building-o"></i>
<p>Manage</p></a></li> 
<li class="nav-item" [ngClass]="{'active': active_tab=='assignservice'}"><a routerLink="/main/organization/assignservice" (click)="activemenu('assignservice')"><i class="la la-user"></i><p>Add organization</p></a></li>
</ul></div>

কোডটি এনজি ক্লাসের ভাল উদাহরণ যদি অন্য শর্ত থাকে।

[ngClass]="(active_tab=='assignservice' || active_tab=='manage')?'show':''"

[ngClass]="{'active': active_tab=='assignservice'}"

0

এই মত চেষ্টা করুন ..

'' দিয়ে আপনার ক্লাসটি সংজ্ঞায়িত করুন

<ol class="breadcrumb">
    <li *ngClass="{'active': step==='step1'}" (click)="step='step1; '">Step1</li>
    <li *ngClass="{'active': step==='step2'}"  (click)="step='step2'">Step2</li>
    <li *ngClass="{'active': step==='step3'}" (click)="step='step3'">Step3</li>
</ol>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.