根据视图AngularJS错误更改文本

时间:2015-08-21 21:16:20

标签: angularjs

我正在试图弄清楚为什么我正在使用的脚本会出错。我的应用程序有两个页面,我想在切换视图时更改一些标题文本。它以当前的形式工作,但我一直收到控制台错误,我想修复它。这是代码:

.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;

我很困惑,因为脚本有效,但当我切换回第四个时,错误被抛出。

1 个答案:

答案 0 :(得分:1)

这将是简单的修复,只需使用current.title而不是私有$$route对象。 current路由将继承title

app.run(['$rootScope', function($rootScope) {
    $rootScope.$on('$routeChangeSuccess', function(event, current, previous) {
        $rootScope.title = current.title;
    });
}]);