@servicenow/sdk
Version:
ServiceNow SDK
110 lines (76 loc) • 2.66 kB
Markdown
---
tags: [SPAngularProvider, service portal, angular provider, sp_angular_provider]
---
# SPAngularProvider
Creates an AngularJS provider for Service Portal — a directive, factory, or service that extends widget functionality (`sp_angular_provider`). Providers are shared across widgets and enable reusable client-side logic.
## Signature
```typescript fluent
SPAngularProvider(config)
```
## Parameters
### config
`SPAngularProvider`
**Properties:**
- **$id** (required): `string | number | ExplicitKey<string>`
- **name** (required): `string`
The name of the Angular provider (required)
- **$meta** (optional): `object`
- **installMethod**: `'first install' | 'demo' | 'once'`
Map a record to an output folder that loads only in specific circumstances.
'first install' - > 'unload',
'demo' -> 'unload.demo'
- **requires** (optional): `(string | Record<'sp_angular_provider'> | SPAngularProvider)[]`
An array of angular providers required by this provider
- **script** (optional): `string`
The script for the Angular provider
- **type** (optional): `'directive' | 'factory' | 'service'`
The type of the Angular provider (default is 'directive')
## Examples
### Basic Angular Provider
Create a minimal Service Portal Angular provider
```typescript fluent
/**
* @title Basic Angular Provider
* @description Create a minimal Service Portal Angular provider
*/
import { SPAngularProvider } from '@servicenow/sdk/core'
SPAngularProvider({
$id: Now.ID['my_angular_provider'],
name: 'myAngularProvider',
})
```
### Angular Provider Service
Create an Angular provider of type service with custom script
```typescript fluent
/**
* @title Angular Provider Service
* @description Create an Angular provider of type service with custom script
*/
import { SPAngularProvider } from '@servicenow/sdk/core'
SPAngularProvider({
$id: Now.ID['my_angular_provider'],
name: 'myAngularProvider',
script: '// my provider service',
type: 'service',
})
```
### Angular Provider with Dependencies
Create an Angular provider that requires other providers
```typescript fluent
/**
* @title Angular Provider with Dependencies
* @description Create an Angular provider that requires other providers
*/
import { SPAngularProvider } from '@servicenow/sdk/core'
const childProvider = SPAngularProvider({
$id: Now.ID['3790304b16c4f94468b2932e79ca7364'],
name: 'childProvider',
script: '// child script',
type: 'directive',
})
SPAngularProvider({
$id: Now.ID['parent-provider-id'],
name: 'myAngularProvider',
requires: ['5f41b53498566648389c9b40286de458', childProvider],
})
```