Right To Left (RTL) can be enabled for Syncfusion Angular UI components by calling enableRtl
with
true
.This will render all the Syncfusion Angular UI components in right to left direction. We can enable the feature by setting the property enableRtl
value as true.
import { enableRtl } from '@syncfusion/ej2-base';
import { Component} from '@angular/core';
// Enables Right to left alignment for all controls
enableRtl(true);
@Component({
selector: 'app-container',
template: `<ejs-listview id='sample-list' [dataSource]='data' [fields]='fields' showHeader='true' headerTitle='Social Media'>
<ng-template #template let-data="">
<span class='{{data.class}} icon'><span class='media'>{{data.socialMedia}}</span></span>
</ng-template></ejs-listview>`
})
export class AppComponent {
public data: Object = [
{ class: 'facebook', socialMedia: 'Facebook', id: 'media1' },
{ class: 'twitter', socialMedia: 'Twitter', id: 'media2' },
{ class: 'tumblr', socialMedia: 'Tumblr', id: 'media4' },
{ class: 'google-plus', socialMedia: 'Google Plus', id: 'media5' },
{ class: 'skype', socialMedia: 'Skype', id: 'media6' },
{ class: 'vimeo', socialMedia: 'Vimeo', id: 'media7' },
{ class: 'instagram', socialMedia: 'Instagram', id: 'media8' },
{ class: 'youtube', socialMedia: 'YouTube', id: 'media9' },
];
public fields: Object = { text: 'socialMedia' };
}
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { ListViewModule } from '@syncfusion/ej2-angular-lists';
/**
* Module
*/
@NgModule({
imports: [
BrowserModule,
ListViewModule
],
declarations: [AppComponent],
bootstrap: [AppComponent]
})
export class AppModule { }
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
import { AppModule } from './app.module';
enableProdMode();
platformBrowserDynamic().bootstrapModule(AppModule);
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://cdn.syncfusion.com/ej2/syncfusion-helper.js"></script>
<title>EJ2 Right to Left</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Typescript UI Controls" />
<meta name="author" content="Syncfusion" />
<link href="index.css" rel="stylesheet" />
<link href="//cdn.syncfusion.com/ej2/20.4.38/ej2-lists/styles/material.css" rel="stylesheet" />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://unpkg.com/core-js@2.6.12/client/shim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/core-js/2.4.1/core.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/zone.js/0.9.0/zone.min.js"></script>
<script src="https://unpkg.com/reflect-metadata@0.1.3"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
<script src="systemjs.config.js"></script>
</head>
<body>
<app-container>
<div id='loader'>Loading....</div>
</app-container>
</body>
</html>
To control a component’s direction individually you can directly set the component’s enableRtl
property as true. For illustration, we have enabled RTL for ListView component in following code snippet.
import { Component} from '@angular/core';
@Component({
selector: 'app-root',
template: `<ejs-listview id='sample-list' [dataSource]='data' [fields]='fields' showHeader='true'
enableRtl='true' headerTitle='Social Media'>
<ng-template #template let-data="">
<span class='{{data.class}} icon'><span class='media'>{{data.socialMedia}}</span></span>
</ng-template></ejs-listview> `
})
export class AppComponent {
public data: Object = [
{ class: 'facebook', socialMedia: 'Facebook', id: 'media1' },
{ class: 'twitter', socialMedia: 'Twitter', id: 'media2' },
{ class: 'tumblr', socialMedia: 'Tumblr', id: 'media4' },
{ class: 'google-plus', socialMedia: 'Google Plus', id: 'media5' },
{ class: 'skype', socialMedia: 'Skype', id: 'media6' },
{ class: 'vimeo', socialMedia: 'Vimeo', id: 'media7' },
{ class: 'instagram', socialMedia: 'Instagram', id: 'media8' },
{ class: 'youtube', socialMedia: 'YouTube', id: 'media9' },
];
public fields: Object = { text: 'socialMedia' };
}
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { ListViewModule } from '@syncfusion/ej2-angular-lists';
/**
* Module
*/
@NgModule({
imports: [
BrowserModule,
ListViewModule
],
declarations: [AppComponent],
bootstrap: [AppComponent]
})
export class AppModule { }
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
import { AppModule } from './app.module';
enableProdMode();
platformBrowserDynamic().bootstrapModule(AppModule);
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://cdn.syncfusion.com/ej2/syncfusion-helper.js"></script>
<title>EJ2 Right to Left</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Typescript UI Controls" />
<meta name="author" content="Syncfusion" />
<link href="index.css" rel="stylesheet" />
<link href="//cdn.syncfusion.com/ej2/20.4.38/ej2-lists/styles/material.css" rel="stylesheet" />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://unpkg.com/core-js@2.6.12/client/shim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/core-js/2.4.1/core.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/zone.js/0.9.0/zone.min.js"></script>
<script src="https://unpkg.com/reflect-metadata@0.1.3"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
<script src="systemjs.config.js"></script>
</head>
<body>
<app-root>
<div id='loader'>Loading....</div>
</app-root>
</body>
</html>