嵌套状态下的角度ui分页

时间:2014-01-04 15:35:34

标签: angularjs angular-ui angular-ui-router

我一直在讨论这个问题 我有一个状态(使用ui-router)“视频”,在这里,我使用angular-ui进行分页。然后我有一个状态“videos.lectionvideos”,这是视频状态的孩子。这个孩子还包含分页。但问题来了。分页工作很好,但它似乎只在一个方向起作用。分页处理视频状态,然后我移动到孩子lectionVideos,它也有效,但当我回到状态视频时,保留以前的状态,但它不再起作用。
这里我是一个我用于分页的功能:

$scope.SelectPage = function (page) {
        console.log('Navigate to page: ' + page);

        // next index of the first video
        var index = (page - 1) * $scope.videosPerPage;

        // start loading bar
        $scope.$emit('LOADING');

        // if we haven't already download it
        if($scope.recentVideos[index] === undefined)
        {
            // ... do some stuff
        }
        else
        {
            // ... do some stuff
        }
    }

当我尝试导航到其他页面时,它根本不会起作用,所以我猜我在继承或传递函数时遇到问题或者我不知道。
这是分页的JADE代码:

 pagination(total-items='countVideos', page='currentPage', items-per-page='videosPerPage', max-size='10', on-select-page='pagiVideos.SelectPage(page)')

以下是范围:

    // total number of videos to go through
    $scope.countVideos = data.countVideos || 0;

    // PAGINATION SETTINGS
    // current page
    $scope.currentPage = 1;
    // index of the first item that appears on the page
    $scope.firstItemIndex = 0;

    // calculate correct number of videos on the page
    $scope.GetNumbers = function () {
        var p = $scope.firstItemIndex + $scope.videosPerPage;
        p = (p > $scope.countVideos ? (p - $scope.countVideos) : $scope.videosPerPage);
        return $scope.GetNums(p);
    };

部分州代码:

   $stateProvider
        .state('videos', {
            url : '/videos',
            templateUrl : '/partials/videos.html',
            controller : 'VideosCtrl',
            resolve : {
                  // resolve stuff
            },
            title : 'Videos',
            menuItem : 'Videos'
        })
        .state('videos.videosLection', {
            url : '/:lection',
            templateUrl : '/partials/videosLection.html',
            controller : 'VideosLectionCtrl',
            menuItem : 'Videos',
            resolve : {
                // resolve stuff
            }
        })

任何想法?我已经尝试将变量包装到对象中,没有运气。

修改

我发现了同样的问题,但版本更简单。我认为这是我正在处理的问题。这是代码:

$stateProvider
        .state('about', {
            url: '/about',
            templateUrl: '/partials/about.html'
        })
        .state('about.stateone', {
            url: '/one',
            template: '<p>State one</p><p><test-d v="1"></test-d></p>'
        })
    ;

这是状态设置,这里是test-d的指令:

.directive('testD', function () {
    return {
        restrict : 'E',
        scope : {
            fn : '&',
            v : '@'
        },
        controller : ['$scope', function ($scope) {
            $scope.fun = function () {
                console.log('greetings from directive: ' + $scope.v);
            }
        }],
        template: '<div><p>Var: {{v}}</p>' +
            '<button ng-click="fun()">SEND</button></div>'
    }
})

关于州的HTML(JADE)看起来像这样:

ui-view
        p Default content
        test-d(v='0')

看来,当我回到它时,默认内容会以某种方式被覆盖。问题是,当我按下处于关闭状态的按钮时,工作,然后转到状态一,它也可以工作,但回到约,按钮不再工作。我没看到什么?

0 个答案:

没有答案