İki bölüm var: İlk önce yönlendiriciyi ilk sayfa yüklemesinde tekmelenmesini devre dışı bırakmanız gerekiyor. Bu yüzden gibi yapılabilir: (bkz ui-view iç sunucu render işaretlemeyi Damping iki kez çalıştırılan birinci denetleyici ile ilgili sorunlar garip davranışa neden:
app.config(function($httpProvider, $urlRouterProvider) {
// On the first page load disable ui-router so that
// our server rendered page is not reloaded based on the window location.
$urlRouterProvider.deferIntercept();
});
İkincisi biz doğru ui-görünümü kurmak gerekir https://github.com/angular-ui/ui-router/issues/1807), böylece bizim ui-view div sonra bizim sunucu render işaretleme eklemek ve bir navigasyon olayı olana kadar ui-view gizlemek. yani şimdi biz ettik, biz JavaScript devre dışı bırakılırsa sayfa mükemmel davranır emin olmak için ng-pelerin kullandım
app.controller('PropertyDetailCtrl', function loader($rootScope, $scope) {
$scope.isFirstPageLoad = true;
$rootScope.$on('$viewContentLoading', function(event, viewConfig) {
$scope.isFirstPageLoad = false;
});
});
:
<div ng-controller="PropertyDetailCtrl">
<div class="ng-cloak" ng-show="!isFirstPageLoad" ui-view></div>
<div ng-show="isFirstPageLoad">
(server rendered markup goes here)
</div>
</div>
Şimdi $ kapsamında isFirstPageLoad ayarlamanız gerekir ui yönlendiricisi tarafından işlenen tüm sonraki gezinti ile ilk sayfa yükü oluşturulmuş tam sunucu tarafı var.
Bu sayfada verilen bağlantıyı kontrol edin: https://angular-ui.github.io/ui-router/site/#/api/ui.router.router.$urlRouterProvider#methods_deferintercept. Hatta bir örnek sağlar. Uygulamanızın yapılandırmasını önyüklerken bu yöntemi çağırdığınızdan emin olun. – Dom
Bu garip, Chrome'da boş bir sayfa görüyorum (http://share.aidanlister.com/aYJx) bu yüzden kafam çok karışıktı. – Aidan
Sunucu tarafı oluşturmayı nasıl işlersiniz? –