Recentemente ho creato un'app AngularJS 1.0.0rc8 con un back-end Rails 3.2.3 e ha funzionato bene in fase di sviluppo, ma dopo la distribuzione in Heroku c'era un Errore provider sconosciuto - a quanto pare l'app non ha potuto vedere l'oggetto servizio.AngularJS + Rails - Problemi durante la compressione delle risorse
so che ora è necessario includere angolari-resource.js come file separato e iniettare ngResource nel modulo di applicazione in questo modo:
// main app javascript file
'use strict';
angular.module('contactapp', ['ngResource']).
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/contacts', {template: 'assets/app/partials/contact-list.html', controller: ContactListCtrl}).
when('/contacts/new', {template: 'assets/app/partials/new-contact.html', controller: ContactListCtrl}).
when('/contacts/:contact_id', {template: 'assets/app/partials/contact-detail.html', controller: ContactDetailCtrl}).
otherwise({redirectTo: '/contacts'});
}]);
so anche che quando i file vengono minified che la i controllori non può dire ciò che i loro dipendenze sono meno che non siano anche iniettati nel oggetti controller in questo modo:
ContactListCtrl.$inject = ['$scope', '$http', 'Contacts'];
ho anche provato a fare il contrario che angolare raccomanda con staffa Notat ion e passando in una funzione come questa:
var ContactListCtrl= ['$scope', '$http', 'Contacts', function($scope, $http, Contacts) { /* constructor body */ }];
Tuttavia, niente di tutto ciò sembra funzionare.
L'unico modo la mia domanda potrebbe vedere la risorsa fornita era disattivando la compressione di asset nel file production.rb, in questo modo:
# Compress JavaScripts and CSS
config.assets.compress = false
Ci sono volute diverse ore per me di conoscere questo, ma io recentemente ho visto un'altra app Rails + AngularJS che ha avuto lo stesso problema.
Jens Krause sono giunti alla stessa conclusione e spiega sul suo blog: http://www.websector.de/blog/2012/01/17/fun-with-angularjs-rails-coffeescript-sass-another-cafe-townsend-example/
Se ho un relativamente grande app, e ho bisogno di comprimere i beni, come faccio a ottenere intorno a questo utilizzando angolare con Rails ?
Grazie.
Ho provato anche questo metodo senza successo, ottengo lo stesso errore. Vedi qui: http://stackoverflow.com/questions/13459452/rails-3-angularjs-minification-does-not-work-in-production-unknown-provider – jemminger