Bu nedenle, angularUI yönlendirme kurulumumdan aşağıdaki parçayı düşünün. Rota/kategori/yönet/4/detaylarına (örneğin) gidiyorum. İlgili denetleyicinin yüklenmesinden önce 'kategorinin' çözülmesini bekliyorum ve aslında kategori hizmetinden kategoriyi döndüren ve kategorinin döndürüldüğünü gören çözüm işlevinin içine bir kesme noktası koyabileceğim ölçüde. Şimdi denetleyicinin içine başka bir kırılma noktası koymak 'kategorisinin' her zaman tanımsız olduğunu görebiliyorum. UI yönlendirici tarafından enjekte edilmez.Köşeli UI yönlendirici enjekte edilen parametreleri çözümlemiyor
Problemi gören var mı? Sağladığım koddan başka bir yerde olabilir, ancak kodu çalıştırdığımda hatam olmadığı için, sorunun kaynağının nerede olabileceğini söylemek imkansız. Tipik js sessiz arızaları!
.state('category.manage', {
url: '/manage',
templateUrl: '/main/category/tree',
controller: 'CategoryCtrl'
})
.state('category.manage.view', {
abstract: true,
url: '/{categoryId:[0-9]*}',
resolve: {
category: ['CategoryService', '$stateParams', function (CategoryService, $stateParams) {
return CategoryService.getCategory($stateParams.categoryId).then(returnData); //this line runs before the controller is instantiated
}]
},
views: {
'category-content': {
templateUrl: '/main/category/ribbon',
controller: ['$scope', 'category', function ($scope, category) {
$scope.category = category; //category is always undefined, i.e., UI router is not injecting it
}]
}
},
})
.state('category.manage.view.details', {
url: '/details',
data: { mode: 'view' },
templateUrl: '/main/category/details',
controller: 'CategoryDetailsCtrl as details'
})
Teşekkür ederiz! Kesinlikle doğru. Garip kısmı, bu sözdizimini $ http hizmetiyle kullanıyorum ve her zaman iyi çalıştı, ve kategori hizmetimin bir işe yarayacağını düşündüm. Farkın ne olduğunu bulmam gerekecek, ama yardımın için tekrar teşekkürler. Çok takdir edildi. –
Bu kullanımın belgelerini görmedim. ve belgede, çözüm nesnesinin fabrikada anahtar olduğunu gösterir. ve fabrika sadece dize veya işlevi kabul eder ... – Demonbane
Son olarak kendi sorunumu bu çözümle çözebildi. Teşekkürler! –