在你的指令中添加 changePage 调用(我知道它不是你想要的)。让它使用相同的参数调用父范围 changePage。
$scope.changePage = function(index){
console.log("running changePage");
$scope.$parent.changePage(index); //might want to check if the parent scope has this too
}
作为另一个提示,在指令中,您不应该在被发送的变量前面使用 $。在这种情况下,这将是 $scope、$element、$attrs。您在控制器(不是链接函数)的作用域前面看到的 $ 是为了让您知道它正在被注入。它没有被注入到链接控制器中。例如,这里:
app.directive("pager", function ($injector1, $injector2) {
这是注入参数的地方,您希望能够区分它们两者。我意识到这有点偏离轨道,我希望我对 changePage 的建议是您正在寻找的。
编辑:更新小提琴http://jsfiddle.net/dVFDT/48/
为未来的搜索者修改的答案:您通过 click 方法传入的函数,如下所示:
..... click="changePage()".....
需要改为:
..... click="changePage".....
这意味着您传递的是函数而不是函数调用。这意味着在您的指令中,当您连接 changePage 回调时,您正在调用具有如下索引的函数:
changePage()(1)
这就是为什么你变得不确定的原因。