angularjs范围变量未在routeChangeSuccess中更新

时间:2014-06-23 08:26:15

标签: javascript angularjs callback angularjs-scope javascript-databinding

AngularJs起点app.js

.config(function ($routeProvider,$interpolateProvider,$locationProvider) {
$routeProvider
  .when('/', {
    templateUrl: 'views/main.html',
    controller: 'MainCtrl'
  })
  .when('/page/:pageid', {
    templateUrl: function (params) {
                        return 'views/' + params.pageid + 'detail.html'; 
                                                },
    controller: 'PageCtrl'
  }).
 .otherwise({
    redirectTo: '/'
  });

PageCtrl Js文件

 .controller('PageCtrl', function ($scope,$http,$timeout,$location,$rootScope,$filter) {

    $scope.currentrouteinPageCtrl = "";

    $scope.$on('$routeChangeSuccess', function (scope, next, current)
        {
             console.log('Total ......route slug : ' + Object.keys(next.params).length);
             console.log(next.params.pageid);

             $scope.currentrouteinPageCtrl = next.params.pageid; 
             console.log($scope.currentrouteinPageCtrl);
        });

        $( window ).scroll(function() 
        {
            console.log($scope.currentrouteinPageCtrl); 

        });     


 });

当我像/ page / food和/ page / story
一样动态改变我的路线时 $scope.currentrouteinPageCtrl正在窗口滚动事件中获取价值食物和故事

我认为没有必要那个stil,我尝试$scope.apply()给了我摘要错误,所以我尝试了这个$rootScope.$$phase || $rootScope.$apply();

我也尝试从$ location.path()获取路径,但仍面临同样的问题

提前致谢

0 个答案:

没有答案