Javascript 移动到ng include(AngularJS)时,搜索筛选器不再工作

Javascript 移动到ng include(AngularJS)时,搜索筛选器不再工作,javascript,html,angularjs,data-binding,angularjs-filter,Javascript,Html,Angularjs,Data Binding,Angularjs Filter,在项目的早期,我无法隔离一些视图,必须直接在index.html中开发它们。特别是我的导航菜单 现在我已经能够让ng include工作了,我想把菜单拉到nav.html中。这是完全好的,仍然像预期的那样工作 但我的菜单中有一个搜索栏,它已经不起作用了。最初,即使我的导航菜单直接位于index.html中,它过滤的内容也在ng视图中。不过,我想过滤的视图和导航都在同一个控制器下,我没有更改ng视图组件。 但是现在我已经隔离了nav.html,搜索过滤器似乎不再绑定 index.html: ...

在项目的早期,我无法隔离一些视图,必须直接在index.html中开发它们。特别是我的导航菜单

现在我已经能够让
ng include
工作了,我想把菜单拉到nav.html中。这是完全好的,仍然像预期的那样工作

但我的菜单中有一个搜索栏,它已经不起作用了。最初,即使我的导航菜单直接位于index.html中,它过滤的内容也在
ng视图中。不过,我想过滤的视图和导航都在同一个控制器下,我没有更改
ng视图
组件。 但是现在我已经隔离了nav.html,搜索过滤器似乎不再绑定

index.html

...
<body>
    <div ng-include="'views/nav.html'"></div>
    <div ng-view></div>
    ...
</body>
...
<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,也没有更改nav.html。我只是将它隔离到它自己的html文件中,并将它包括在内,而不是直接放在那里


有什么想法吗?我将感谢任何帮助。谢谢大家!

nav.html和table.html具有相同的控制器NavController?如果拆分视图,为什么不拆分控制器


我想如果你像分割视图一样分割控制器,一切都会正常工作。此外,如果您使用de ng view,您将使用路由,以便控制器将绑定到table.html两次。

这可能是一个迟来的答案,但它可能会帮助将来遇到此问题的任何人: 我最近发现,当使用ng include包含包含输入字段的文件时,ng repeat的过滤器似乎已损坏。这是因为ng include创建了一个新的(子)范围,您可以使用$parent范围表示法来解决此问题:

因此,nav.html中的输入字段应修改为如下所示:

        <input type="text" name="input" value="Search" ng-model="$parent.search.$" /> 


最初它们有不同的控制器,但我希望导航能够影响表格,而我无法使用不同控制器中的数据。我有更多的过滤器将表格数据与导航连接起来,而不仅仅是搜索,我不确定如何将两者连接起来。(这是我最终想要做的,但不知道如何做,所以我只是将它们组合起来。)您可以使用一个rootscope变量,该变量将包含搜索输入的值,该值将在表的筛选器中使用。我将为您创建一个示例,我可以将其发送给您吗?很高兴我终于找到了这个答案!谢谢
        <input type="text" name="input" value="Search" ng-model="$parent.search.$" />