Skip to content

Latest commit

 

History

History
74 lines (51 loc) · 1.52 KB

README.md

File metadata and controls

74 lines (51 loc) · 1.52 KB

Single Page Application Rails

bundle
rails db:create
rails db:migrate
rails db:seed
rails s

Vendor

Versions récentes et minifiées d'Angularjs, et des extensions animate et route.

Javascript

L'application doit être démarrée avant le chargement des controllers:

//= require_self
//= require_tree ./application

HTML

Le layout application (app/views/layouts/application.html.erb) présente plusieurs points importants.

  1. L'instanciation d'application avec un nom, un contrôleur global et un cloak.
<html ng-app="application" ng-cloak ng-controller="ApplicationController">
  1. La base pour le routage
<base href="/">
  1. La balise noscript pour le SEO et en cas de non-interprétation du javascript
<noscript>
  <%= yield %>
</noscript>
  1. La balise ng-view avec le fade, pour les instanciations avec transitions
<div ng-view class="fade"></div>
  1. Le chargement automatique des templates angular
<% Dir['app/views/**/*.template.erb'].each do |path| %>
  <% template = path.remove('app/views/').remove('.template.erb') %>
  <script type="text/ng-template" id="<%= template %>">
    <%= render file: "#{template}.template.erb" %>
  </script>
<% end %>

Production

Pour éviter le changement des noms de variables à la compilation, qui casse l'injection de dépendance d'Angular:

/config/environments/production.rb

config.assets.js_compressor = Uglifier.new(mangle: false)

Credits

Data from https://github.com/tategallery/collection