2014-11-25 164 views
0

我试图实现指令分页,我想将当前页面的数量从指令传递给控制器​​,然后使用该参数从控制器运行一个函数,但即时获取未定义。从指令到控制器的角度传递函数参数

<account-pagination pagination-config="paginationConfig" on-change="pageChanged()"> 
</account-pagination> 

控制器:

$scope.pageChanged = function(page) { 
    console.log(page); // undefined 
} 

指令:

scope: { 
     paginationConfig: '=', 
     onChange: '&', 
    } 


$scope.moveToPage = function(numPage) { 
    $scope.currentPage = numPage; 
    getPaginData(numPage); 
} 

function getPaginData(numPage) { 
    $scope.onChange({page: numPage}); 
} 

模板指令:

<li ng-repeat="num in numPages"><a ng-click="moveToPage(num)" ng-class="{pageActive: isActive(num)}">{{num}}</a></li> 
+0

您不会将当前页面按参数传递给您的on-change = pageChanged()标签。这是否有一个原因? – Kutyel 2014-11-25 07:27:39

+0

是的,这是因为你没有在事件本身中传递页面on-change =“pageChanged()”'在这里你没有传递任何参数,你在函数中使用它,所以它是未定义的。 – Jai 2014-11-25 07:28:11

回答

0

OK我找到了解决方案:

<account-pagination pagination-config="paginationConfig" on-change="pageChanged"> 
</account-pagination> 

scope: { 
     paginationConfig: '=', 
     onChange: '=', 
    } 

$scope.pageChanged = function(page) { 
    console.log(page); 
} 

$scope.moveToPage = function(numPage) { 
    $scope.currentPage = numPage; 
    $scope.onChange(numPage); 
} 
+0

很高兴你找到你的问题的答案,然后你需要按名称传递你的函数,而不是用'()'调用它,很好知道;) – Kutyel 2014-11-25 08:34:51

+0

是的,谢谢:) – Bazinga 2014-11-25 08:37:35

相关问题