$ scope更改后,ng-repeat不会再次触发

时间:2016-06-27 13:53:57

标签: javascript jquery html angularjs

我是Angular的新手,并尝试创建一个过滤机制,在键入一个字母时查找数据库并查找结果。

结果从DB返回正常,但我遇到的问题是当我用结果填充范围数组时,ng-repeat不会触发。

我的HTML和JS:

    app.controller("friendsController",function($scope,$http){
        $scope.results =[];
        $scope.onTextChange = function (){
            var results = [];
            var text = $scope.friendsLookupText;
            $http({
                url: 'utilities/getFriendsByValue.php',
                method: 'POST',
                data: {textValue: text}
            }).success(function(data) {
                if(data=="none")
                {
                    $scope.results = results;
                }
                else
                {
                    var stringResult = JSON.stringify(data);
                    var parsedResult = JSON.parse(stringResult);
                    $scope.results = parsedResult;
                }
            });

        };
    });
<div class="container-fluid" ng-controller="friendsController as friendsCtrl">
  <input type="text" id="friendsLookupText" ng-model="friendsLookupText" ng-change="onTextChange()">
   <ul class="list-group">
     <div class="" ng-repeat="result in $scope.results">
         <li class="list-group-item">{{result.username}}</li>
     </div>
   </ul>
</div>

如果有人能提供帮助,我会很高兴。

1 个答案:

答案 0 :(得分:0)

从视图中的重复中删除$ scope,仅使用results

<div class="" ng-repeat="result in results">
     <li class="list-group-item">{{result.username}}</li>
 </div>