我是一个非常新的角度,虽然到目前为止我喜欢它,但我的第一个真实案例遇到了一个小问题。我有一个.json文件的工作人员的信息。我还有一个由Google搜索设备运行的全球搜索,只需浏览网页。理想情况下,当用户搜索关键词时,如果它匹配我的.json文件中的任何名称,我想显示他们的信息(其完整配置文件的链接也将来自.json)与搜索结果分开。
到目前为止,我已经能够使用ng-repeat在页面上显示.json并排序/限制显示的数量。我猜我不得不解析以某种方式使用的搜索词的网址。角度是否可以实现此功能?
任何线索或提示都将不胜感激。
答案 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
功能