【发布时间】:2014-08-06 10:36:35
【问题描述】:
在我的项目的早期,我无法隔离我的一些视图,不得不直接在 index.html 中开发它们。具体来说,我的导航菜单。
现在我已经能够让ng-include 工作,我想将我的菜单拉到 nav.html 中。这完全没问题,并且仍然几乎完全按预期运行。
但我的菜单中有一个不再起作用的搜索栏。最初,即使我的导航菜单直接在 index.html 中,它过滤的内容也在 ng-view 中。不过,我想要过滤的视图和导航都在同一个控制器下,并且我没有更改 ng-view 组件。
但是现在我已经隔离了 nav.html,搜索过滤器似乎不再具有约束力。
index.html:
...
<body>
<div ng-include="'views/nav.html'"></div>
<div ng-view></div>
...
</body>
...
nav.html:
<div class="nav">
<div ng-controller="NavController">
...
<div class="searchbar">
<input type="text" name="input" value="Search" ng-model="search" />
<!--ng-model="search" is the binding component, as I understand-->
</div> <!--end searchbar div-->
...
</div> <!--end NavController div-->
</div> <!--end nav div-->
table.html:(ng-view中要过滤的内容)
<div ng-controller="NavController">
<table>
<tr class="title_bar">
<td>Title</td>
<td>A</td>
<td>B</td>
</tr>
<tr ng-repeat="item in listOfItems | filter:search">
<!--table rows should be filtered by the search-->
<td>{{item.title}}</td>
<td>{{item.A}}</td>
<td>{{item.B}}</td>
</tr>
</table>
</div>
我根本没有改变table.html,也没有改变nav.html。我只是将它隔离到它自己的 html 文件中并 ng-include'd 而不是直接将它放在那里。
有什么想法吗?我将不胜感激任何帮助。谢谢!
【问题讨论】:
标签: javascript html angularjs data-binding angularjs-filter