这听起来很复杂但是,我希望这里的人比我更有经验,并且可以毫不费力地对下面的内容进行分类。
为了保持这一点,这一切都与分页部分相关:如下所示:有一个控制器通过ajax请求从测试页面中提取一些初始数据对象。这些数据对象属于每个“小狗块” - 它们用正确的数据填充小狗块指令的“小狗块”模板。
使用ng-repeat显示块(重复拉动数据对象的数量) - 这表示页面。
分页是独立的,只需通过不同的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
指令的数据,但是我还需要在每个preview-pup
指令内触发puppy-block
指令的链接功能,当变化发生时。分页指令和ng-repeat指令都有一个公共控制器,用于绘制数据(修改数据)。
我的问题是我不知道如何在ng-click
上手动触发指令的链接功能。我怎么能这样做?
答案 0 :(得分:0)
好的,找到了解决方案:
将$routeScope
注入您的控制器和您想要触发更改的指令。
使用它来通知子指令父控制器中的更改。有关更多详细信息 - 如果有人偶然发现这个问题寻找类似的东西 - Angular.js trigger another directive
答案 1 :(得分:0)
我有同样的问题。通过$ index&#34;删除&#34;轨道来自ng-repeat为我修好了它。不幸的是,我不知道为什么。