Ho due percorsi con risoluzione. Va in questo modo:AngularJS, resolver e provider sconosciuto
.when('/foos', {
templateUrl: 'views/foos.html',
controller: 'FoosCtrl',
resolve: {
foo_list: ['$q', '$route', '$timeout', '$location', 'Foos', function($q, $route, $timeout, $location, Foos) {
// postpone the execution
var deferred_foo = $q.defer()
Foos.getFoos({token:session_uid}, successCb)
function successCb(list) {
if(list['status'] === 200) {
deferred_foo.resolve(list)
}
else {
alert('Crashcrashcrash')
deferred_foo.reject("Something just wasn't right")
//$location.path('maintenance')
}
}
return deferred_foo.promise
}]
}
})
.when('/r/:type/:bar_id', {
templateUrl: 'views/bar.html',
controller: 'BarsCtrl',
resolve: {
bar: ['$q', '$route', '$timeout', '$location', 'Bars', function($q, $route, $timeout, $location, Bars) {
// postpone the execution
var deferred = $q.defer()
Bars.getBar({type: bar_type}, successCb)
function successCb(result) {
if(result['status'] === 200) {
deferred.resolve(result)
}
else {
alert('Crashcrashcrash')
deferred.reject("Something just wasn't right")
$location.path('foos')
}
return deferred.promise
}]
}
})
allora ho due controller a lavorare in questo modo:
App.controller('FoosCtrl', ['$scope', '$location', 'Foos', 'foo_list', function($scope, $location, Foos, foo_list) {...}
App.controller('BarsCtrl', ['$scope', '$routeParams', '$location', 'Bars', 'bar', 'sharedService', function($scope, $routeParams, $location, Bars, bar, sharedService) {...}
Qualcuno potrebbe spiegare perché le opere Bar ma Foo mi dà Error: Unknown provider: foo_listProvider <- foo_list
? Ho provato a sostituire foo_list
con un nome diverso nel caso in cui CamelCasing abbia fatto qualcosa, ma non ha aiutato.
Sei sicuro opere Bar? Probabilmente non ottieni alcun errore su Bar perché Foo sta fallendo e Bar non viene nemmeno creato/definito. Hai provato a cambiare l'ordine di init? – bmleite
Sì. Bar funziona perfettamente - questo è il motivo per cui sono così frustrato e confuso su questo. Ho fatto parte della sezione Bar dell'app poche settimane fa e ora volevo applicare la risoluzione anche a Foo. – jimmy
Se si accede a 'bar' all'interno di' BarsCtrl' cosa si ottiene? Contiene qualcosa o è solo * non definito *? – bmleite