@cerebral/angular
Angular view for Cerebral.
Install
npm install @cerebral/angular @angular/core @angular/platform-browser babel-plugin-transform-decorators-legacy
CerebralService
The Cerebral service exposes the Cerebral controller to your application.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { provide } from 'cerebral'
import { AppService } from '@cerebral/angular'
import { AppComponent } from './app.component.ts'
import { SomeAngularService } from './SomeAngularService'
export function configureApp(someAngularService : SomeAngularService) {
return new AppService({
providers: [
provide('someAngularService', someAngularService)
]
})
})
@NgModule({
imports: [ BrowserModule ],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ],
providers: [
{
provide: AppService,
useFactory: configureApp,
deps: [SomeAngularService]
},
]
})
export class AppModule {}
connect decorator
The connect decorator connects state and signals to your components.
import {
Component,
ChangeDetectionStrategy,
ChangeDetectorRef
} from '@angular/core'
import { sequences, state } from 'cerebral/tags'
import {
connect,
AppService,
CerebralComponent
} from '@cerebral/angular'
@Component({
selector: 'app-component',
template: `
<div (click)="onClick()">{{foo}}</div>
`,
changeDetection: ChangeDetectionStrategy.OnPush
})
@connect({
myName: state(['foo']),
onClick: sequences(['clicked'])
})
export class AppComponent extends CerebralComponent {
constructor(cdr: ChangeDetectorRef, app: AppService) {
super(cdr, app)
app.getSequence('onClick')()
}
}