角度 ui 路由器的问题 - 我无法将过滤器应用于指令中的重复
Problems with angular-ui-router - I cannot apply a filter to a repeat in a directive
我有一个问题,仅当我将指令作为角度 ui 路由器状态的一部分加载时才会发生。当我将指令直接添加到索引时.html一切都按预期工作。
这是一个 plunker,演示了我遇到的问题:http://plnkr.co/edit/EzvTOiSzaf6jjCsBKM1e?p=preview
我有一个返回对象数组的资源personResource
。
控制器personController
查询资源,并将结果保存到$scope.people
中。
这将填充一个模板list-people.html
该模板加载到指令listPeople
中。
我遇到的问题是另一个指令filterPeople
其中包含带有过滤列表选项的单选按钮。
预期的结果是,如果我选择一个选项,它只会显示该行的值与选项值匹配的那些行。实际发生的是,无论我选择什么,都会显示所有数据
这是一个范围问题,您的模板有自己的子范围,这些子范围无法看到彼此中的值,因此当您在一个模板中设置personFilter.color
时,使用它作为筛选器的模板不知道它。 您可以使用angularjs batarang或插入一个简单的绑定来调试这些问题(plnkr):
</tbody></table>personFilter json: {{personFilter|json}
若要解决此问题,可以在父作用域上设置 personFilter 对象,两个子级都将使用继承的对象。 只需意识到,如果在子作用域而不是属性上设置对象,则只会在一个子作用域上设置该值,而其他作用域将继续使用继承的对象。 您可能应该将控制器放在父控制器上。 您的控制器正在为内容和侧边栏实例化,因此即使侧边栏中未使用数据,您也会两次查询您的人员......
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何将返回的值应用于多个不同位置的多个选择器
- ThreeJS将画布中的文本渲染为纹理,然后应用于平面
- 如何使jQuery中的悬停函数单独应用于数据库映像
- 如何将jquery函数仅应用于大屏幕
- 将jQuery事件应用于所有类元素
- 如何应用带过滤器的ng if来过滤记录,并在同一页面中显示两个不同的视图
- 在将绑定应用于控制器之后,是否会发出Angular$scope事件
- 如何在ExtJs中获得将应用于给定类列表的样式
- 将 CSS 应用于禁用的输入按钮
- 如何从应用于正文的css中排除特定的表单
- jQuery+Android.将功能(Touchstart、touchmove)应用于实时加载的内容
- 将敲除绑定应用于模板,并将结果作为字符串获取
- 如何将Angular2管道应用于动态内容
- 动画功能不应用于每个元素
- 仅将JavaScript应用于部分代码(例如菜单)
- 将过滤器应用于音频上下文
- EaseJS将颜色过滤器应用于位图
- Javascript - 将过滤器应用于画布并重置为原始
- 角度 ui 路由器的问题 - 我无法将过滤器应用于指令中的重复