我有像这样的照片轮播指令
<mz-photo-carousel items-per-slide=6
carousel-data="vm.carouselData">
</mz-photo-carousel>
在指令内部只是用于显示带有传递数据的旋转木马
<div uib-carousel active="active" no-wrap="noWrapSlides">
<div uib-slide ng-repeat="slide in vm.carouselData">
....
</div>
</div>
我想将过滤后的数据发送到mz-photo-carousel指令,如下所示:
<mz-photo-carousel items-per-slide=6
carousel-data="vm.carouselData | myFilter:param">
</mz-photo-carousel>
我不想在mz-photo-carousel指令中进行过滤,因为我想让它保持通用性,只处理它获得的数据。
答案 0 :(得分:0)
问题在于,因为您设置了双向数据绑定到fn set_x(&mut self, v: i32) {
self.field = v;
let fref = &self.field;
Foo::call_callbacks(&mut self.cbs.iter_mut(),
|cb| cb.on_update(fref));
}
fn call_callbacks<OP>(it: &mut Iterator<Item=&mut Box<OnUpdate>>,
mut operation: OP)
where OP: FnMut(&mut OnUpdate)
{
for cb in it {
operation(&mut **cb);
}
}
属性。
参考来自SO答案:
将过滤器作业传递给指令时,angular会放置一个手表 在你的工作变量。所以当工作在指令观察中被分配时 被调用,这将再次触发过滤器,这将继续 直到最大消化周期达到角度。
要避免这种情况,您可以创建一个过滤方法并传递它 ng模型中的方法。这样您就可以避免复制创建和 最大摘要周期错误。
所以为了消除错误。使用下面的JS在指令中使用过滤器。还提供了演示。
<强> JS:强>
array