Home

Awesome

mobx-angularjs

npm version coverage npm downloads Build Status

MobX connector to AngularJS

This package is for Angular 1.x, if you're looking for the Angular 2+ version, it's here.

MobX is a modern reactive state management library.

This simple library connects MobX to Angular.

Why use MobX

The advantages of MobX are:

<a href="http://mobxjs.github.io/mobx" target="_blank">Read more about MobX</a>

Why use this library

Performance and magic!

This library brings the magic of automatic data binding, together with incredibly high performance.

All you need is to wrap your template with a mobx-autorun directive. The directive will automatically re-run the $digest cycle on the scope, whenever something that the template uses changes.

It will also dispose of the autorun callback when the scope is destroyed.

Installation

Install, import, and include:

$ npm install --save mobx-angularjs
import mobxAngular from 'mobx-angularjs'

angular.module('app', [ mobxAngular ])

or

Use CDN and include:

<!-- development -->
<script src="https://unpkg.com/mobx-angularjs/mobx-angularjs.js"></script>

<!-- production -->
<script src="https://unpkg.com/mobx-angularjs/mobx-angularjs.min.js"></script>
angular.module('app', [ 'mobx-angularjs' ])

Usage

import { store } from './store'

angular.component('myComponent', {
  controller() {
    this.store = store
  },
  controllerAs: '$ctrl',
  template: `
    <div mobx-autorun>
      {{ $ctrl.store.value }} - {{ $ctrl.store.computedValue }}
      <button ng-click="$ctrl.store.action()">Action</button>
    </div>
  `
})

Important note: Make sure you always mark your isolated scope block (such as ng-if) with the mobx-autorun directive so that MobX can react to it.

Example

Clone this repository:

$ git clone https://github.com/mobxjs/mobx-angularjs
$ cd mobx-angularjs

Install dependencies:

$ npm install

Start example server:

$ npm run example

Note: Example uses Parcel which requires Node 8+