Angular ng-repeat取决于搜索结果

时间:2014-04-02 14:08:15

标签: javascript json angularjs search

我是一个非常新的角度,虽然到目前为止我喜欢它,但我的第一个真实案例遇到了一个小问题。我有一个.json文件的工作人员的信息。我还有一个由Google搜索设备运行的全球搜索,只需浏览网页。理想情况下,当用户搜索关键词时,如果它匹配我的.json文件中的任何名称,我想显示他们的信息(其完整配置文件的链接也将来自.json)与搜索结果分开。

到目前为止,我已经能够使用ng-repeat在页面上显示.json并排序/限制显示的数量。我猜我不得不解析以某种方式使用的搜索词的网址。角度是否可以实现此功能?

任何线索或提示都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我也是Angular的新手,但请继续拍摄。请注意,它取决于angular-resources.js

我们的想法是创建一个填充数据的工厂,然后创建一个与DOM交互的控制器。

var myApp = angular.module('myApp',[]);

myApp.factory('StaffData', function($http){
  return {
    getData : function() { //Load your json file
      $http({
        method: "GET",
        url: "staff.json"
      }).success(function(staff) { return staff; })  //Return the staff data
      .error(function(e) { console.log(e); return []; });  //An error occurred
    }
});

myApp.controller('StaffSearch', function($scope, StaffData){
  var allStaff = StaffData.getData();
  $scope.staffMatched = refine(allStaff);

}

function refine(staff) {
  var matches = [];
  //Implement search algorithm here
  return matches;
}

然后在HTML中,

<div ng-controller="StaffData">
  <div ng-repeat"member in staffMatched"> {{member.name}} </div>
</div>

请尝试使用Angular's filter functions

,而不是使用refine功能