页面更改时分页元素的角度运行指令



听起来很复杂,但我希望这里有人比我更有经验,可以毫不费力地整理以下内容。

为了正确看待这一点,这一切都与分页部分有关,如下所示:有一个控制器通过 ajax 请求从测试页中提取一些初始数据对象。这些数据对象与每个"小狗块"有关 - 它们用正确的数据填充小狗块指令的"小狗块"模板。

这些块使用 ng 重复显示(重复拉取的数据对象数( - 这表示一个页面。

分页是独立的,只是通过不同的 ajax 请求修改控制器数据。

我这里有这个ng-repeat

<div class="puppiesContainer" ng-repeat="p in puppies track by $index">
    <puppy-block></puppy-block>
</div>

其目的是多次重复指令<puppy-block></puppy-block>指令模板是这样的:

<div class="puppyA" preview-pup>
    <div class="clearfix puppyCover" dataPreview="{{p.dataPreview}}">
        <a ng-href="{{p.link}}"><img ng-src="{{previewData[currentPosition]}}" /></a>
    </div>
</div>

如您所见,每个元素上都有另一个称为 preview-pup 的指令。该指令的代码是这样的:

obApp.directive('previewPup', ['$timeout',function($timeout){
return {
    restrict: 'A',
    link: function(scope, el, attr){
        //some code that needs to run often
    }
}
}]);

在不同页面之间移动时,我的分页指令会更改 puppy-block 指令的数据,但是当更改发生时,我还需要在每个 puppy-block 指令内触发 preview-pup 指令的链接功能。分页指令和 ng-repeat 指令都有一个公共控制器,它们从中提取数据(修改数据(。

我的问题是我不知道如何在ng-click上手动触发指令的链接函数,例如。我该怎么做?

好的,找到了一个解决方案:

$routeScope注入控制器和要触发更改的指令。使用它来通知子指令父控制器中的更改。有关更多详细信息 - 如果有人偶然发现这个问题寻找类似的东西 - Angular.js触发另一个指令

我遇到了同样的问题。从 ng-repeat 中删除"按$index跟踪"为我修复了它。不幸的是,我还不知道为什么。

最新更新