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是您的控制器的範圍。 –
我意識到...謝謝你... –