Я пытаюсь получить свой URL, используя UID вместо идентификатора в интеграции prismic ИО с угловым, но я получаю эту ошибку:Получение URL с помощью UID вместо идентификатора prismic гипергликемии
TypeError: Cannot read property 'slug' of undefined
at controllers.js:83
at wrappedCallback (angular.js:11682)
at wrappedCallback (angular.js:11682)
at angular.js:11768
at Scope.$eval (angular.js:12811)
at Scope.$digest (angular.js:12623)
at Scope.$apply (angular.js:12915)
at done (angular.js:8450)
at completeRequest (angular.js:8664)
at XMLHttpRequest.xhr.onreadystatechange (angular.js:8603)
тот мой контроллер:
.controller('DocumentCtrl', ['$scope', '$routeParams', 'Prismic', '$location', function($scope, $routeParams, Prismic, $location) {
Prismic.document($routeParams.uid).then(function(document){
if (document.slug === $routeParams.slug) {
Prismic.ctx().then(function(ctx) {
$scope.document = document;
//
$scope.documentHtml = document.asHtml(ctx);
console.log(document);
})
}
else if (document.slugs.indexOf($routeParams.slug) >= 0) {
$location.path('/document/'+document.uid+'/'+document.slug);
}
else {
// Should display some kind of error; will just redirect to/for now
$location.path('/');
}
});
}])
и вот мой конфиг провайдер маршрут
config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/:page?', {templateUrl: 'partials/home.html', controller: 'HomeCtrl'});
$routeProvider.when('/document/:uid/:slug', {templateUrl: 'partials/document.html', controller: 'DocumentCtrl'});
// $routeProvider.when('/document/:slug', {templateUrl: 'partials/document.html', controller: 'DocumentCtrl'});
$routeProvider.when('/search/:q*/:page?', {templateUrl: 'partials/search.html', controller: 'SearchCtrl'});
$routeProvider.otherwise({redirectTo: '/'});
}]).
и перенаправлять мои документы здесь:
<ul id="list">
<li ng-repeat=" document in documents.results">
<a href="#/document/{{document.uid}}/{{document.slug}}">
{{document.slug}}
</a>
</li>
</ul>
'document' является предопределенным словом js. Итак, попробуйте дать другое имя вместо 'document' и попробуйте еще раз. – SaiUnique
Сообщение об ошибке указывает, что 'document' используется в' Prismic.document ($ routeParams.uid). Then (function (document) {'handler' undefined'. Переименуйте 'document' в что-то еще, поскольку это JavaScript predefined 'variable'. –
такая же проблема, я получаю –