
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
@meanie/angular-form-controls
Advanced tools
A set of form control components for Angular 1 (select box, type ahead, check boxes, radio buttons)
A set of form control components for Angular 1 (select box, check boxes, radio buttons)

You can install this package using yarn or npm:
#yarn
yarn add @meanie/angular-form-controls
#npm
npm install @meanie/angular-form-controls --save
Include the script node_modules/@meanie/angular-form-controls/release/angular-form-controls.js in your build process, or add it via a <script> tag to your index.html:
<script src="node_modules/@meanie/angular-form-controls/release/angular-form-controls.js"></script>
Add FormControls.Component as a dependency for your app.
These form controls don’t come with styling included, so you will have to supply your own styling. An example is included in the source code.
The form controls which take an array as options, support both simple options and complex (object) options. The examples below use the following option arrays:
//Simple options, an array with string or numeric values
let simple = ['Option 1', 'Option 2', 'Option 3'];
//Complex options, an array with objects
let complex = [
{
id: 1,
name: 'Option 1'
},
{
id: 2,
name: 'Option 2'
},
{
id: 3,
name: 'Option 3'
}
];
Simple options, tracked by option value (e.g. Option 1, Option 2, ...):
<radio-buttons
options="simple"
ng-model="model"
on-change="updateModel(value)"
></radio-buttons>
Simple options, tracked by index of option in array (e.g. 0, 1, ...):
<radio-buttons
options="simple"
ng-model="model"
track-by="$index"
on-change="updateModel(value)"
></radio-buttons>
Simple options, disabled:
<radio-buttons
options="simple"
ng-model="model"
ng-disabled="true"
on-change="updateModel(value)"
></radio-buttons>
Simple options, required:
<radio-buttons
name="fieldName"
options="simple"
ng-model="model"
ng-required="true"
on-change="updateModel(value)"
></radio-buttons>
Complex options, tracked by index of option in array (e.g. 0, 1, ...):
<radio-buttons
options="complex"
ng-model="model"
track-by="$index"
label-by="name"
on-change="updateModel(value)"
></radio-buttons>
Complex options, tracked by ID property value (e.g. 1, 2, ...):
<radio-buttons
options="complex"
ng-model="model"
track-by="id"
label-by="name"
on-change="updateModel(value)"
></radio-buttons>
Complex options, tracked by ID property value, but returned as object:
<radio-buttons
options="complex"
ng-model="model"
track-by="id"
label-by="name"
as-object="true"
on-change="updateModel(value)"
></radio-buttons>
Complex options, tracked by ID property value, nullable with specified null value and label:
<radio-buttons
options="complex"
ng-model="model"
track-by="id"
label-by="name"
is-nullable="true"
null-label="'None'"
null-value="0"
on-change="updateModel(value)"
></radio-buttons>
Simple options, tracked by option value (e.g. Option 1, Option 2, ...):
<select-box
options="simple"
ng-model="model"
on-change="updateModel(value)"
></select-box>
Simple options, tracked by index of option in array (e.g. 0, 1, ...):
<select-box
options="simple"
ng-model="model"
track-by="$index"
on-change="updateModel(value)"
></select-box>
Simple options, disabled:
<select-box
options="simple"
ng-model="model"
ng-disabled="true"
on-change="updateModel(value)"
></select-box>
Simple options, required:
<select-box
name="fieldName"
options="simple"
ng-model="model"
ng-required="true"
on-change="updateModel(value)"
></select-box>
Complex options, tracked by index of option in array (e.g. 0, 1, ...):
<select-box
options="complex"
ng-model="model"
track-by="$index"
label-by="name"
on-change="updateModel(value)"
></select-box>
Complex options, tracked by ID property value (e.g. 1, 2, ...):
<select-box
options="complex"
ng-model="model"
track-by="id"
label-by="name"
on-change="updateModel(value)"
></select-box>
Complex options, tracked by ID property value, but returned as object:
<select-box
options="complex"
ng-model="model"
track-by="id"
label-by="name"
as-object="true"
on-change="updateModel(value)"
></select-box>
Complex options, tracked by ID property value, nullable with specified null value and label:
<select-box
options="complex"
ng-model="model"
track-by="id"
label-by="name"
is-nullable="true"
null-label="'None'"
null-value="0"
on-change="updateModel(value)"
></select-box>
For check boxes, the value passed to the on-change handler is always an array of checked values. The model value is also expected to be an array.
Simple options, tracked by option value (e.g. Option 1, Option 2, ...):
<check-boxes
options="simple"
ng-model="model"
on-change="updateModel(value)"
></check-boxes>
Simple options, tracked by index of option in array (e.g. 0, 1, ...):
<check-boxes
options="simple"
ng-model="model"
track-by="$index"
on-change="updateModel(value)"
></check-boxes>
Simple options, disabled:
<check-boxes
options="simple"
ng-model="model"
ng-disabled="true"
on-change="updateModel(value)"
></check-boxes>
Simple options, required:
<check-boxes
name="fieldName"
options="simple"
ng-model="model"
ng-required="true"
on-change="updateModel(value)"
></check-boxes>
Complex options, tracked by index of option in array (e.g. 0, 1, ...):
<check-boxes
options="complex"
ng-model="model"
track-by="$index"
label-by="name"
on-change="updateModel(value)"
></check-boxes>
Complex options, tracked by ID property value (e.g. 1, 2, ...):
<check-boxes
options="complex"
ng-model="model"
track-by="id"
label-by="name"
on-change="updateModel(value)"
></check-boxes>
Complex options, tracked by ID property value, but returned as object:
<check-boxes
options="complex"
ng-model="model"
track-by="id"
label-by="name"
as-object="true"
on-change="updateModel(value)"
></check-boxes>
Standard:
<check-box
ng-model="model"
on-change="updateModel(value)"
>Label for checkbox</check-box>
Inverse (e.g. appears checked when model value is false):
<check-box
ng-model="model"
is-inverse="true"
on-change="updateModel(value)"
>Label for checkbox</check-box>
Disabled:
<check-box
ng-model="model"
ng-disabled="true"
on-change="updateModel(value)"
>Label for checkbox</check-box>
Required:
<check-box
ng-model="model"
ng-required="true"
on-change="updateModel(value)"
>Label for checkbox</check-box>
Please report any bugs, issues, suggestions and feature requests in the @meanie/angular-form-controls issue tracker.
Pull requests are welcome! If you would like to contribute to Meanie, please check out the Meanie contributing guidelines.
(MIT License)
Copyright 2015-2017, Adam Reis
FAQs
A set of form control components for Angular 1 (select box, type ahead, check boxes, radio buttons)
We found that @meanie/angular-form-controls demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.