我正在试图弄清楚为什么我正在使用的脚本会出错。我的应用程序有两个页面,我想在切换视图时更改一些标题文本。它以当前的形式工作,但我一直收到控制台错误,我想修复它。这是代码:
.run(['$rootScope', function($rootScope) {
$rootScope.$on('$routeChangeSuccess', function (event, current, previous) {
$rootScope.title = current.$$route.title;
});
然后在我的HTML中:
<h1 class="section-intro" ng-bind="title"></h1>
但我一直收到这个错误:
TypeError: Cannot read property 'title' of undefined
at app.js:39
at Scope.$broadcast (angular.js:16165)
at angular-route.js:619
at processQueue (angular.js:14567)
at angular.js:14583
at Scope.$eval (angular.js:15846)
at Scope.$digest (angular.js:15657)
at Scope.$apply (angular.js:15951)
at HTMLBodyElement.<anonymous> (angular.js:12086)
at HTMLBodyElement.jQuery.event.dispatch (jquery.js:4435)
与...有关:
$rootScope.title = current.$$route.title;
我很困惑,因为脚本有效,但当我切换回第四个时,错误被抛出。
答案 0 :(得分:1)
这将是简单的修复,只需使用current.title
而不是私有$$route
对象。 current
路由将继承title
:
app.run(['$rootScope', function($rootScope) {
$rootScope.$on('$routeChangeSuccess', function(event, current, previous) {
$rootScope.title = current.title;
});
}]);