pixelhandler / ember-fetchjax

Ember addon to use Fetch or AJAX

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ember-fetchjax

Ember Addon to use Fetch or AJAX.

The default behavior is to use Fetch when available, otherwise to use AJAX.

Build Status Ember Observer Score npm

  • Provides a set of utils to use in an Ember app, however the utils do not require Ember, they are just JavaScript classes
    • See the addon/utils directory
  • No polyfill for window.fetch or window.Promise required
    • If you want to use a polyfill see the bower projects es6-promise and fetch
  • Setup a fetchjax.fetch method to use AJAX or Fetch
    • FetchOrAjax constructor requires dependencies, e.g. jQuery.ajax
    • Instance defaults to native Fetch and Promise, unless you pass in Ember.RSVP.Promise, or another fetch method
  • See the dummy app and acceptance tests for example use

Usage

Example route that defaults to use Fetch, but falls back to AJAX:

import Ember from 'ember';
import FetchOrAjax from 'ember-fetchjax/utils/fetchjax';

const fetchjax = new FetchOrAjax({ajax: Ember.$.ajax});

export default Ember.Route.extend({
  model() {
    return fetchjax.fetch('/api/v1/posts', {method: 'GET'});
  }
});

Example route the forces the use of XHR:

import Ember from 'ember';
import FetchOrAjax from 'ember-fetchjax/utils/fetchjax';

const fetchjax = new FetchOrAjax({useAjax: true, ajax: Ember.$.ajax});

export default Ember.Route.extend({
  model() {
    return fetchjax.fetch('/api/v1/posts', {method: 'GET'});
  }
});

Installation

Install addon…

  • ember install ember-fetchjax

Install for local development…

  • git clone <repository-url> this repository
  • cd ember-fetchjax
  • npm install
  • bower install

Running

Running Tests

  • npm test (Runs ember try:each to test your addon against multiple Ember versions)
  • ember test
  • ember test --server

Building

  • ember build

For more information on using ember-cli, visit http://ember-cli.com/.

About

Ember addon to use Fetch or AJAX

License:MIT License


Languages

Language:JavaScript 94.8%Language:HTML 5.2%