可以通过以下代码示例来解决此问题。
组态:
app.config(['$routeProvider', function($routeProvider) { $routeProvider. when('/home', { templateUrl: 'partials/home.html', controller: 'HomeController' }). when('/about', { templateUrl: 'partials/about.html', controller: 'AboutController' }). when('/contacts', { templateUrl: 'partials/contacts.html', controller: 'ContactsController' }). otherwise({redirectTo: '/home'}); }]);
控制器:
app.controller('HomeController', function($scope) { $scope.contentLoaded = false; $scope.$on('$viewContentLoaded', function() { $scope.contentLoaded = true; }); });
app.controller('AboutController', function($scope) { $scope.contentLoaded = false; $scope.$on('$viewContentLoaded', function() { $scope.contentLoaded = true; }); });
app.controller('ContactsController', function($scope) { $scope.contentLoaded = false; $scope.$on('$viewContentLoaded', function() { $scope.contentLoaded = true; }); });
HTML:
在这个示例中,我们在ng-show指令中使用contentLoaded属性来隐藏部分视图,直到ng-view被加载并完全放置为止。 通过在每个控制器中使用$viewContentLoaded事件来更改contentLoaded属性,我们可以确保视图完全加载后再显示视图。