bundle
rails db:create
rails db:migrate
rails db:seed
rails s
Versions récentes et minifiées d'Angularjs, et des extensions animate et route.
L'application doit être démarrée avant le chargement des controllers:
//= require_self
//= require_tree ./application
Le layout application (app/views/layouts/application.html.erb) présente plusieurs points importants.
- L'instanciation d'application avec un nom, un contrôleur global et un cloak.
<html ng-app="application" ng-cloak ng-controller="ApplicationController">
- La base pour le routage
<base href="/">
- La balise noscript pour le SEO et en cas de non-interprétation du javascript
<noscript>
<%= yield %>
</noscript>
- La balise ng-view avec le fade, pour les instanciations avec transitions
<div ng-view class="fade"></div>
- 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 %>
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)