AngularJS-使用自定义过滤器和ngClick更新相同的ng repeat

AngularJS-使用自定义过滤器和ngClick更新相同的ng repeat,angularjs,angularjs-directive,angularjs-scope,angularjs-ng-repeat,angularjs-ng-click,Angularjs,Angularjs Directive,Angularjs Scope,Angularjs Ng Repeat,Angularjs Ng Click,我有一个简单的ng repeat。可通过两种方式填充ng reapeat,第一种是键入值并单击提交按钮,第二种是输入值并自动更新列表 我发现的问题是,当用户单击Sumbit时,使用过滤器的ng repeat不会更新 这是一个plunker(键入帮助): HTML: 你知道我如何使用一个单一的ng重复,当用户输入值时,机器人会在点击时更新吗?这是你传递给过滤器的型号名称 它是 {{i.Title} 应该是 {{i.Title} 你有提琴或钢琴吗? <div id="fixed" direc

我有一个简单的
ng repeat
。可通过两种方式填充
ng reapeat
,第一种是键入值并单击提交按钮,第二种是输入值并自动更新列表

我发现的问题是,当用户单击Sumbit时,使用过滤器的
ng repeat
不会更新

这是一个plunker(键入帮助):

HTML:


你知道我如何使用一个单一的ng重复,当用户输入值时,机器人会在点击时更新吗?

这是你传递给过滤器的型号名称

它是
  • {{i.Title}
  • 应该是
  • {{i.Title}

  • 你有提琴或钢琴吗?
    <div id="fixed" directive-when-scrolled="loadMore()">
      <ul>
        <li ng-repeat="i in items | limitTo: limit | filter: search">{{ i.Title }}</li>
      </ul>
    </div>
    
    <br>
    
    
    <input ng-model="searchText">
    <button ng-click="performSearch(searchText)">Submit</button>
    
    
    <div>
      <strong>Result Search onClick</strong>
      <ul>
        <li ng-repeat="item in filtered">
          <p>{{ item.Title }}</p>
        </li>
      </ul>
    </div>
    
    app.controller('MainCtrl', function($scope, $filter) {  
    
    $scope.limit = 5;
    
      var counter = 0;
      $scope.loadMore = function() {
        $scope.limit += 5;
      };
    
      $scope.loadMore();
    
      $scope.performSearch = function(searchText) {
            $scope.filtered = $filter('filter')($scope.items, $scope.search);
        }
    
        $scope.search = function (item){
            if (!$scope.searchText)
                return true;
    
            if (item.Title.indexOf($scope.searchText)!=-1 || item.Title.indexOf($scope.searchText)!=-1) {
                    return true;
                }
                return false;
        };
    
    
    });
    
    
    app.directive("directiveWhenScrolled", function() {
      return function(scope, elm, attr) {
        var raw = elm[0];
    
        elm.bind('scroll', function() {
          if (raw.scrollTop + raw.offsetHeight >= raw.scrollHeight) {
            scope.$apply(attr.directiveWhenScrolled);
          }
        });
      };
    });
    
    <li ng-repeat="i in items | limitTo: limit | filter: search">{{ i.Title }}</li>
    
    <li ng-repeat="i in items | limitTo: limit | filter: searchText">{{ i.Title }}</li>