angular-ujs

0.4.8 • Public • Published

angular-ujs

Distributed via

Gem Version NPM version

Unobtrusive scripting for AngularJS ( without jQuery dependency )

Build Status Coverage Status Code Climate Dependency Status

Project philosophy

Develop in LiveScript

LiveScript is a compile-to-js language, which provides us more robust way to write JavaScript.
It also has great readibility and lots of syntax sugar just like you're writting python/ruby.

Native, lightweight directives

Unobtrusive scripting in jquery_ujs provides the same interface with angular directives.
We use the similarity between them and provides seamless intergration with jquery_ujs.

Spec / Scenario coverage

We use krama to run unit test against angular-ujs.spec.ls and use protractor to run intergration test via angular-ujs.scenario.ls.

Installation

We follow DRY and has one dependency only on angularjs.
However, we recommend you add ng-rails-csrf into your project. As it name suggests, ng-rails-csrf automatically resolves CSRF in angularjs environment without jquery_ujs.

Just use it

Then include them through script tag in your HTML.

Rails projects (Only support 3.1+)

Add this line to your application's Gemfile:

gem 'ng-rails-csrf' # Optional 
gem 'angular-ujs'

And then execute:

$ bundle

Then add these lines to the top of your app/assets/javascripts/application.js file:

//= require angular
//= require ng-rails-csrf (Optional)
//= require angular-ujs

And include in your angular module definition:

/* 'angular.ujs' DO NOT depend on 'ng-rails-csrf' module.
 * You need to include it yourself.
 */    
var module = angular.module('my-awesome-project', ['angular.ujs']).

Usage

"data-confirm": Confirmation dialogs for links and forms

<form data-confirm="Are you sure you want to submit?">...</form>

"data-method": Links that result in POST, PUT, or DELETE requests

<a href="..." data-method="delete" rel="nofollow">Delete this entry</a>

"data-remote": Make links and forms submit asynchronously with Ajax

** Notice : API changed **

For angularjs apps, ONLY those items with ng-model will be submitted with data-remote

<form data-remote="true" action="...">
  <input type="text" name="name" ng-model="name">
</form>

You can specify the model name via data-remote :

<form data-remote="user" action="...">
  <input type="text" name="name" ng-model="user.name">
  <input type="email" name="email" ng-model="user.email">
</form>

Use them all together :

<a href="..." data-method="delete" data-remote="true" data-confirm="Are you sure you want to delete?" rel="nofollow">Delete this entry</a>

Contributing

devDependency Status Bitdeli Badge

  1. Fork it ( http://github.com/tomchentw/angular-ujs/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.4.8
    17
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.4.8
    17
  • 0.4.7
    0
  • 0.4.6
    0
  • 0.4.5
    0

Package Sidebar

Install

npm i angular-ujs

Weekly Downloads

17

Version

0.4.8

License

MIT

Last publish

Collaborators

  • tomchentw