0
一些问题,首先我会告诉你我的html:约Angularjs指令
<div class="pager" pager-control getPageNumber="getPageNumber()" getPageData="getPageData()">
我的这个“指令”的目的是使寻呼机。 这是JS文件自爆:
var paging = angular.module('paging',[]);
paging.controller('pageCtrl',function($scope,$timeout){
$scope.currentPageIndex = 0;
$scope.model = [
{ name: 'www'},
{ name: 'www'},
{ name: 'www'},
{ name: 'www'},
{ name: 'www'}
];
$scope.getPageNumber = function(){
var len = 10,ret=[];
for(i = 0;i < 10; i++) {
ret.push(i);
}
return ret;
};
$scope.getPageData = function(index) {
$scope.currentPageIndex = index;
alert('trigger!');
};
});
paging.directive('pagerControl',function(){
return {
restict: 'A',
replace: false,
transclude: true,
template: '<ul ng-transclude><li ng-class="{current: $parent.currentPageIndex == $index}" ng-repeat="d in $parent.getPageNumber()" ng-click="$parent.getPageData($index)">{{$index + 1}}</li> </ul>',
scope: {
},
link: function(scope,elem,attr) {
}
};
});
希望 “当你点击页面项目,颜色会发生变化”,但没有happends ..
这是jsbin网址:
http://jsbin.com/vijax/2/edit
Thank you it works .. but why“$ parent。$ parent.getPageData($ index)”not“$ parent.getPageData($ index)”? thx再次 –
@ Daniel.Woo:因为'ng-repeat'创建子范围=>还有'1个更深层次'。 $ parent是您的指令的范围和$ parent。$ parent是您的控制器的范围。 –
我意识到...谢谢你... –