我正在关注nettuts Building a Web App From Scratch in AngularJS上的教程,但是使用谷歌电子表格中我自己的json调用。除了搜索过滤器似乎没有工作。
编辑:根据反馈,这里是简化的例子
app.controller("mainController", function($scope, $http){
$scope.results = [];
$scope.filterText = null;
$scope.init = function() {
var sheet = "od6"; //upcoming classes
var key = "0AhVWrVLsk5a5dDJyaW1LMXFEVk1UY0FPVlBVcHd1bGc";
var url = "http://spreadsheets.google.com/feeds/list/" + key + "/" + sheet + "/public/values?alt=json-in-script";
$http.jsonp(url + '&callback=JSON_CALLBACK').success(function(data) {
angular.forEach(data, function(value, index){
angular.forEach(value.entry, function(classes, index){
$scope.results.push(classes);
});
});
}).error(function(error) {
});
};
});
之后,设置似乎相当容易,就像:
<input type="text" ng-model="filterText" placeholder="Enter text here">
<ul>
<li ng-repeat="classes in results | filter:filterText>
<h3>{{classes.gsx$title.$t}}</h3>
<p>{{classes.gsx$description1.$t}}</p>
<ul>
<li><strong>Start:</strong> {{classes.gsx$start.$t}} </li>
<li><strong>End:</strong> {{classes.gsx$finish.$t}} </li>
<li><strong>Price:</strong> {{classes.gsx$price.$t}} </li>
<li><strong>Seats:</strong> {{classes.gsx$spots.$t}} </li>
<li><strong><a href = "{{classes.gsx$url.$t}}">Sign up now</a></strong></li>
</ul>
</li>
</li>
</ul>
但是当我运行filterText搜索时,它不会给出任何结果。页面显示为空。这是完整的代码示例。
http://plnkr.co/edit/ZnVqyeQ9OWqwzjIEplOU?p=preview
这是json回复:
非常感谢!
答案 0 :(得分:1)
由于您尝试过滤对象中包含的文本,您可以尝试这种方法:
这将显示包含标题的记录,其中包含filterText
搜索栏中输入的内容。
<li ng-repeat="classes in results | filter:{gsx$title.$t: filterText} | isCategory:categoryFilter">