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