angleUI 라우팅 설정에서 다음 조각을 고려하십시오. 나는 경로/카테고리/관리/4/세부 사항 (예를 들면)으로 항해 중입니다. 관련 컨트롤러가로드되기 전에 'category'가 해결되기를 기대하며 실제로 카테고리 서비스에서 카테고리를 반환하고 카테고리가 반환 된 것을 확인하는 resolve 함수 내에 중단 점을 넣을 수 있습니다. 이제 컨트롤러 자체에 또 다른 중단 점을 두는 것은 '범주'가 항상 정의되지 않은 것을 볼 수 있습니다. 그것은 UI 라우터에 의해 주입되지 않습니다.주입 된 매개 변수를 해결하지 않는 각도 UI 라우터
누구든지 문제를 볼 수 있습니까? 제공 한 코드 이외의 다른 위치에있을 수 있지만 코드를 실행할 때 오류가 없으므로 문제의 원인을 알 수는 없습니다. 전형적인 js 침묵의 실패!
.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'
})
고마워요! 확실히 맞아. 이상한 부분은 $ http 서비스와 함께이 구문을 사용하고 있었고 항상 잘 작동했기 때문에 카테고리 서비스가 약속을 되 돌리는다면 똑같이 작동 할 것이라고 생각했습니다. 그 차이점을 알아 내야 겠지만 도움을 주셔서 다시 한번 감사드립니다. 매우 감사. –
이 사용법에 대한 문서가 없습니다. 이 문서에는 해결 객체에 키가 있음이 표시됩니다. 그리고 공장은 문자열이나 함수만을 받아들입니다 ... – Demonbane
마침내이 솔루션으로 제 자신의 문제를 해결할 수있었습니다. 감사! –