Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在使用AngularJs从数据库检索的列表中单击搜索按钮时搜索固定值_Javascript_Html_Angularjs - Fatal编程技术网

Javascript 如何在使用AngularJs从数据库检索的列表中单击搜索按钮时搜索固定值

Javascript 如何在使用AngularJs从数据库检索的列表中单击搜索按钮时搜索固定值,javascript,html,angularjs,Javascript,Html,Angularjs,我正在使用搜索功能从列表中获取搜索记录,该列表已从数据库中检索并填充在html页面中,我正在从controller中的列表中获取过滤的搜索,但不是完整的搜索。我需要在点击搜索按钮时显示固定值结果(例如,搜索“J”时我不应该得到“John”,我应该得到我搜索的确切值),有人能帮我吗。 这是我的一段HTML代码。 <ul class="col-sm-11 col-xs-12 searchFields"> <li class="col-md-2

我正在使用搜索功能从列表中获取搜索记录,该列表已从数据库中检索并填充在html页面中,我正在从controller中的列表中获取过滤的搜索,但不是完整的搜索。我需要在点击搜索按钮时显示固定值结果(例如,搜索“J”时我不应该得到“John”,我应该得到我搜索的确切值),有人能帮我吗。 这是我的一段HTML代码。

<ul class="col-sm-11 col-xs-12 searchFields">
                    <li class="col-md-2 col-sm-4"><span class="col-xs-12">TIN</span><input type="text" ng-model="data.providerTin" ng-keyup="formatTin($event)"  ng-trim="false" ng-blur="clearError()" id="tinElem" placeholder="TIN" maxlength="11" autofocus /></li>
                    <li class="col-md-2 col-sm-4"><span class="col-xs-12">Last Name</span><input type="text" ng-model="data.providerFullLastName" ng-keyup="formatLast($event)" placeholder="Last Name" maxlength="20" /></li>
                    <li class="col-md-2 col-sm-4"><span class="col-xs-12">First Name</span><input type="text" ng-model="data.providerFirstName" ng-keyup="formatFirst($event)" placeholder="First Name" maxlength="12" /></li>
                    <li class="col-md-2 col-sm-4"><span class="col-xs-12">City</span><input type="text" ng-model="data.prvdAdrCityNm" ng-keyup="formatCity($event)" placeholder="City" maxlength="21" /></li>
                    <li class="col-md-2 col-sm-4"><span class="col-xs-12">State</span><input type="text" ng-model="data.prvdAdrStCd" ng-keyup="formatState($event)" ng-trim="false" ng-blur="clearError()" placeholder="State" maxlength=2 /></li>
                    <li class="col-md-2 col-sm-4"><span class="col-xs-12">Phone</span><input type="text" ng-model="provider.prvdTelNum" ng-keyup="formatPhone($event)" ng-blur="clearError()" placeholder="(xxx) xxx-xxxx" onkeydown="javascript:backspacerDOWN(this,event);" onkeyup="javascript:backspacerUP(this,event);" maxlength="14" required /></li>
                </ul>
                <div class="col-md-1  col-sm-4 searchBlock">

                    <button class="searchBtn" type="button" id="searchBtn" ng-click="">Search</button>

                </div>


<tr  ng-repeat= "data in recommendatnList| filter:searchd"  >
                        <td><a href="#/viewPrvdDtlPage/{{data.providerId}}" class="openLink">{{data.providerTin}}</a></td>
                        <td>{{data.providerFullLastName}}</td>
                        <td>{{data.providerFirstName}}</td>
                        <td>{{data.providerPracticeName}}</td>
                        <td>{{data.prvdAdrCityNm}}</td>
                        <td>{{data.prvdAdrStCd}}</td>
                        <td>{{data.prvdAdrXpndZipCd}}</td>
                        <td>{{data.measure}}</td>
                        <td>{{data.grade}}</td>
                        <td>{{data.measurePaid}}</td>
                        <td>{{data.totalPaid}}</td>
                        <td>{{data.noOfLettrsAnyMeasure}}</td>
                        <td>{{data.noOfLettrsRecommMeasure}}</td>
                        <td>{{data.currClaimAnyMeasure}}</td>
                        <td>{{data.currClaimCurrRecomm}}</td>
                        <td class="interventTblecol"><input type="checkbox" ng-checked="data.letter" ng-model="data.letter"></td>
                        <td class="interventTblecol"><input type="checkbox" ng-checked="data.mcr" ng-model="data.mcr"></td>
                        <td class="interventTblecol"><input type="checkbox" ng-checked="data.fcr" ng-model="data.fcr"></td>
                        <td class="interventTblecol"><input type="checkbox" ng-checked="data.siu" ng-model="data.siu"></td>
                        <td class="interventTblecol"><input type="checkbox" ng-checked="data.removeClaimRvw" ng-model="data.removeClaimRvw" ></td>
                        <td class="interventTblecol"><input type="checkbox" ng-checked="data.flag" ng-model="data.flag"></td>

        </tr>

这是一个奇怪的要求

TL;DR:我在下面写的,是为更多与angularjs斗争的初学者准备的

但基本上你是在尝试创建一个显式过滤器

好像我们有

  $scope.records =  [{name:'John', phone:'555-1276'},
                     {name:'Mary', phone:'800-BIG-MARY'},
                     {name:'Mike', phone:'555-4321'},
                     {name:'Adam', phone:'555-5678'},
                     {name:'Julie', phone:'555-8765'},
                     {name:'Juliette', phone:'555-5678'}];
你会希望J什么都不做 约翰会出示
姓名:约翰,电话:555-1276

如果是这种情况,您需要使用anuglarjs自定义过滤器

我创建了一个plunker就是为了这个原因: 使用与上述相同的记录

filter方法并没有那么聪明,但我会给你一个简短的解释:

newApp.filter('explicitSearch',function(){

  //AngularJS -> declaring a new filter in our newApp module.

  return function(items, string){  
  //The parameters here: well the first parameter in your filter return function would always be the data you are referring to.
  //The second parameter would be the argument that you are passing to the filter,

  //Example : Looks like so <tr ng-repeat='friend in friends | filterName:filterSecondParam'>

     var filtered = [];
    //This array, is going to be our filtered results.


     //This is simple JS code, basically iterate over the data the filter have passed, what if you find something that is explicitly equal, add it to our filtered array.
         for (var i = 0; i < items.length; i++) {
      var item = items[i];
      if (item.name === string) {
        filtered.push(item);
      }
      if(item.phone === string){
        filtered.push(item);
      }
    }
    return filtered;
  }

});
newApp.filter('explicitSearch',function(){
//AngularJS->在我们的newApp模块中声明一个新过滤器。
返回函数(项,字符串){
//这里的参数:过滤器返回函数中的第一个参数始终是您所引用的数据。
//第二个参数是传递给过滤器的参数,
//看起来是这样
var筛选=[];
//这个数组将成为我们的筛选结果。
//这是简单的JS代码,基本上迭代过滤器传递的数据,如果发现显式相等的内容,将其添加到过滤数组中。
对于(变量i=0;i
在HTML上使用:

 <body ng-controller='Ctrl'>
  Search: <input ng-model="searchText">
    <table>
        <thead>
            <tr>
                <th>Name</th>
                <th>Phone</th>
            </tr>
        </thead>
        <tbody>
            <tr ng-repeat='record in records | explicitSearch:searchText '>
                <td>{{record.name}}</td>
                <td>{{record.phone}}></td>                

            </tr>
        </tbody>
        </table>
        </body>

搜索:
名称
电话
{{record.name}
{{record.phone}}>

请您尝试重新解释,并包括
searchd
过滤器的定义。你得到了一些数据,你想在按下一个按钮后过滤它们。。。。和
 <body ng-controller='Ctrl'>
  Search: <input ng-model="searchText">
    <table>
        <thead>
            <tr>
                <th>Name</th>
                <th>Phone</th>
            </tr>
        </thead>
        <tbody>
            <tr ng-repeat='record in records | explicitSearch:searchText '>
                <td>{{record.name}}</td>
                <td>{{record.phone}}></td>                

            </tr>
        </tbody>
        </table>
        </body>