/ / Angular JS: результат першого дозволу не пройде у друге рішення - angularjs, маршрутизація, вирішення

Кутовий JS: результат першого дозволу не пройде у друге рішення - angularjs, маршрутизація, вирішення

Я втрачаю свою думку, намагаючись з'ясувати, чому наступний код створює помилку Невідомий постачальник "geonameProvider <- geoname <- country"

var cacRouteViewMod = angular.module("cacRouteViewMod", ["ngRoute", "cacLib"]);

cacRouteViewMod.config(["$routeProvider", function($routeProvider, $routeParams) {
$routeProvider
.when("/countries/:country/capital", {
templateUrl: "countries/country.html",
controller: "countryDetailCtrl",
resolve: {
geoname: ["$route", "getGeoname", function($route, getGeoname) {
return getGeoname($route.current.params.country);
}],
country: ["getCountry", "geoname", function(getCountry, geoname) {
return getCountry(geoname.countryCode);
}],
neighbors: ["$route", "getNeighbors", function($route, getNeighbors) {
return getNeighbors($route.current.params.country);
}]
}
})
});

Я бачив деякі коди, де практично ідентичний код подано як робочий приклад. Як і цей інший стековерворотний пост (Кутовий JS вирішує у рішенні) І ця стаття (https://medium.com/opinionated-angularjs/advanced-routing-and-resolves-a2fcbf874a1c)

Чому виграла моя робота?

Відповіді:

0 для відповіді № 1

Я вірю в це, тому що ви використовуєте ngRoute (рідний модуль маршрутизації в AngularJS) замість ui-routeur (модуль зазначений у ваших статтях)

Замість цього спробуйте використовувати ui-маршрутизатор, він повинен виглядати так:

.state("countries", {
url: "/countries/:country/capital",
templateUrl: "countries/country.html",
controller: "countryDetailCtrl",
resolve: {
geoname: ["$route", "getGeoname", function($route, getGeoname) {
return getGeoname($route.current.params.country);
}],
country: ["getCountry", "geoname", function(getCountry, geoname) {
return getCountry(geoname.countryCode);
}],
neighbors: ["$route", "getNeighbors", function($route, getNeighbors) {
return getNeighbors($route.current.params.country);
}]

})
});

І вводять його як залежність:

var cacRouteViewMod = angular.module("cacRouteViewMod", ["ui-router", "cacLib"]);