/ / Ъгловият JS: резултатът от първото разрешаване няма да се премине във втората разрешителна - angularjs, routing, solution

Ъглови JS: резултатът от първото решение няма да бъде предаден във второто решение - angularjs, routing, resolve

Аз губя съзнанието си, опитвайки се да разбера защо следният код създава неизвестна грешка на доставчика "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-router:

.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"]);