【发布时间】:2015-10-15 02:49:00
【问题描述】:
我需要从我的控制器内部读取 lastPage 属性的值(存在于下面的自定义指令中)。
https://github.com/michaelbromley/angularUtils/tree/master/src/directives/pagination
function generatePagination() {
if (paginationService.isRegistered(paginationId)) {
var page = parseInt(paginationService.getCurrentPage(paginationId)) || 1;
scope.pages = generatePagesArray(page, paginationService.getCollectionLength(paginationId), paginationService.getItemsPerPage(paginationId), paginationRange);
scope.pagination.current = page;
scope.pagination.last = scope.pages[scope.pages.length - 1];
// ** here is the code I added that I would like to work **
parent.scope.lastPage = scope.pagination.last;
if (scope.pagination.last < scope.pagination.current) {
scope.setCurrent(scope.pagination.last);
} else {
updateRangeValues();
}
}
}
这是作者上面指令中的函数。它有一个名为:scope.pagination.last 的属性,我想从我的控制器中访问它。我试图添加类似这一行的内容: parent.scope.lastPage = scope.pagination.last; 但这不起作用,或者我不知道如何注入父母等。
【问题讨论】:
-
在我看来,您手头有 2 个选项: 1. 将属性添加到与外部属性绑定的 generatePagination 指令。 2. 创建一个保存相关数据的服务并将其注入到 generatePagination 和控制器,以便它们可以通信。你在这里尝试做的不是很好的做法,因为你让你的指令依赖于一个父范围,这打破了指令隔离。
标签: angularjs angularjs-directive pagination