我一直在讨论这个问题
我有一个状态(使用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')
看来,当我回到它时,默认内容会以某种方式被覆盖。问题是,当我按下处于关闭状态的按钮时,工作,然后转到状态一,它也可以工作,但回到约,按钮不再工作。我没看到什么?