IEnumerable "<"invention">" invention = from i in DataContext.invention where i.Sharable == true select i
Thursday, 24 November 2022
angular v15 directive ngFor handling empty list
Sunday, 20 November 2022
Angular functional guard to check on the user role to guard your routes
functional guard to check on the user role to guard your routes.
The functional guard accepts a param for the user role
Less verbose than a class based guard
use canMatch to skip a route dynamically in combination with functional guards.
👍 Super handy when a path should lead to different comp depending on some logic
👋 canLoad is going to be deprecated in favor of canMatch
Saturday, 19 November 2022
Directive composition API in Angular 15
our directive stand alone by adding standalone
property inside directive declaration
import { Directive } from '@angular/core';
@Directive({
selector: '[appRedColor]',
host:{'style': 'color:red;'},
standalone: true
})
export class RedColorDirective {
constructor() { }
}
Now the text inside testdirective
component will be displayed in red color.
<app-testdirective></app-testdirective>
And our code looks simple without adding an extra directive in component tag.
We can add more than one directive inside hostDirectives
property.
@Component({
selector: 'app-testdirective',
templateUrl: './testdirective.component.html',
styleUrls: ['./testdirective.component.scss'],
hostDirectives:[RedColorDirective,HeightDirective,FontStyleDirective,......]
})
export class TestdirectiveComponent {
}
We can add hostDirectives
inside an another directive as well.
Saturday, 15 October 2022
Reusable ng-template with parameters
Sunday, 17 July 2022
change label css when checkbox checked
Saturday, 18 June 2022
ng-container with ngTemplateOutlet and ng-template with context variable
Monday, 13 June 2022
Debug websites in different browsers and devices and write their css media queries
css media query for all devices
You can also test in diffrent device using this tool
Download from https://www.lambdatest.com/
in Ubuntu
step 1 : chmod a+x LTBrowser.AppImage
Thursday, 2 June 2022
Vue Dynamic Directive Arguments and vue event binding
Vue Dynamic Directive Arguments
Vue Promise
If you do not want the root element of a component to inherit attributes, you can set
inheritAttrs: false
in the component’s options
vue event shortcut
Tuesday, 31 May 2022
use memo in your angular component template function call
Monday, 23 May 2022
how to disable anydesk autostart in ubuntu
I've found the following approach to disable the AnyDesk service. In this way, you can run it manually.
systemctl disable anydesk.service
You can also check its service status:
systemctl status anydesk
nb: you might want to stop it first (or after) if it is running:
service anydesk stop
Thursday, 28 April 2022
MongoDB locally on Ubuntu 20.04 code=exited, status=14
$ sudo chown mongodb:mongodb /tmp/mongodb-27017.sock $ sudo systemctl status mongod $ sudo systemctl start mongodb Failed to start mongodb.service: Unit mongodb.service is masked. $ sudo systemctl unmask mongodb Removed /etc/systemd/system/mongodb.service. $ sudo systemctl start mongodb Job for mongodb.service failed because the control process exited with error code. See "systemctl status mongodb.service" and "journalctl -xe" for details.
$ sudo service mongod stop
$ sudo apt-get purge mongodb-org*
$ sudo rm -r /var/log/mongodb
$ sudo rm -r /var/lib/mongodb
$ sudo apt-get install -y mongodb-org
$ sudo systemctl start mongod
$ sudo systemctl status mongod
● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
Active: active (running) since
Saturday, 9 April 2022
TypeScript Record Type
Utility Types
A Record is a utility type — that means it is a type especially defined by TypeScript to help with a certain problem.
example you have a data set like this:
const myData = {
"adfsdfsd1" : { firstName: "Pranay", lastName: "Soni" },
"sddsf24" : { firstName: "Pranay1", lastName: "Soni1" },
"sdfsdf5" : { firstName: "Pranay2", lastName: "Soni2" }
}
Our data set has an ID for its key, which is of type string. All of the values have the same format — that is, they have a firstName and lastName.
For this data structure, a Record is the best utility type to use. We can define our data structure type as follows:
type User = {
firstName: string,
lastName: string
}const myData:Record<string, User> = {
"123w" : { firstName: "Pranay1", lastName: "Soni1" },
"124s" : { firstName: "Pranay2", lastName: "Soni2" },
"125f" : { firstName: "Pranay3", lastName: "Soni3" },
}
A Record takes the form Record<K, T>
, where K
is the type of the key, and T
is the type of the values.
Above, we defined a new type User for our values, and set our keys to type string.
Record Types and Union Types
Sometimes, we can have an object with a predefined set of possible keys. This is particularly true when calling from an API. For example:
const myData = {
"india" : { firstName: "Pranay1", lastName: "Soni1" },
"usa" : { firstName: "Pranay2", lastName: "Soni2" },
"japan" : { firstName: "Pranay3", lastName: "Soni3" },
}
Let’s presume that for our data set above, the key can only be three values: uk, france or india. In this case, we can define a type for User, and a union type for our key:
type User = {
firstName: string,
lastName: string
}
type Country = "uk" | "france" | "india";const myData:Record<Country, User> = {
"india" : { firstName: "Pranay1", lastName: "Soni1" },
"usa" : { firstName: "Pranay2", lastName: "Soni2" },
"japan" : { firstName: "Pranay3", lastName: "Soni3" },
}
Using this method, we can enforce strict rules about the values the key is allowed to be, along with the type our values should conform to
Saturday, 2 April 2022
mongoose full text search in nestjs
Sunday, 16 January 2022
create request logger in Node.js AsyncLocalStorage
BehaviorSubject and ReplaySubject in Rxjs
- BehaviorSubject
A variant of Subject that requires an initial value and emits its current value whenever it is subscribed to.
- ReplaySubject
A variant of Subject that “replays” or emits old values to new subscribers. It buffers a set number of values and will emit those values immediately to any new subscribers in addition to emitting new values to existing subscribers.