关于angularjs:Ng-Show如果过滤搜索不为空?

Ng-Show if filtered search is not empty?

我目前正在为我的电视节目网络应用创建实时搜索。 一切都很好。 我想要的是,如果过滤搜索为空,则不显示我的当前实现不起作用...

如果用户没有输入任何内容,我还希望它显示类似Please typ to search的内容...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
     0'>

        Shows you've seen:

       

       
<ul>


            <li ng-repeat="show in shows | filter: searchbar">

                {{ show.name }}
                <img alt="{{ show.name }}" src="img/artwork/{{ show.image_name }}.png" style="width:50px;height:50px;">

           
</li>


       
</ul>


       

   

     0'>

        All TV Shows:

       

       
<ul>


            <li ng-repeat="allshow in allshows | filter: searchbar">

                {{ allshow.name }}
                <img alt="{{ allshow.name }}" src="img/artwork/{{ allshow.image_name }}.png" style="width:50px;height:50px;">

           
</li>


       
</ul>

====================
在一些答案之后,这就是我从他们那里创造出来的。 现在很棒!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
        Please search something

   

   

         0">

            Shows you've seen:

           

           
<ul>


                <li ng-repeat="show in filtered">

                    {{ show.name }}
                    <img alt="{{ show.name }}" src="img/artwork/{{ show.image_name }}.png" style="width:50px;height:50px;">

               
</li>


           
</ul>


           

       

          0">

            All TV Shows:

           

           
<ul>


                <li ng-repeat="allshow in allfiltered">

                    {{ allshow.name }}
                    <img alt="{{ allshow.name }}" src="img/artwork/{{ allshow.image_name }}.png" style="width:50px;height:50px;">

               
</li>


           
</ul>

你可以做

1
2
3
 0">

// content

但这有性能问题(多次使用过滤器)。 也看看这个如何显示过滤的ng-repeat数据的长度


请参阅工作示例http://jsbin.com/nusoc/1/edit

您可以在转发器中创建filterdShowsfilteredAllshows并在ng-show指令中使用它
即:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 0'>

        Shows you've seen:

       

       
<ul>


            <li ng-repeat="show in filterdShows = (shows | filter: searchbar)">

                {{ show.name }}
                <img alt="{{ show.name }}" src="img/artwork/{{ show.image_name }}.png" style="width:50px;height:50px;">

           
</li>


       
</ul>


如果我正确理解了该任务,您应该用ng-show='searchbar'替换ng-show='shows.length > 0'