2013-07-16 95 views
1

我正在關注nettuts Building a Web App From Scratch in AngularJS上的教程,但使用我自己的谷歌電子表格中的json調用。除了搜索過濾器似乎沒有工作。從JSON過濾文本搜索重複不起作用,angularjs

編輯:意見的基礎上,下面是簡單的例子

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響應:

json response

巨大的感謝!

+0

我建議把你的例子修剪到說明你的問題的_essential_部分。 100+ LOC plunk無法使用:-( –

+0

什麼是工作,什麼不是不清楚 –

+0

@ pkozlowski.opensource,只是簡化了它。 – Yulia

回答

1

既然你試圖篩選包裹在對象中的文本,你可以試試這個方法:

這將顯示包含標題在filterText搜索欄中輸入任何記錄。

<li ng-repeat="classes in results | filter:{gsx$title.$t: filterText} | isCategory:categoryFilter"> 
+0

謝謝!所以如果我想通過標題和描述過濾,我應該設置了兩個過濾器? – Yulia

+0

@Yulia:兩個過濾器將是AND邏輯,你實際上需要OR邏輯,這意味着標題或描述都應該包含關鍵字,在這種情況下,你需要使用一個函數,請看看http ://docs.angularjs.org/tutorial/step_09 – zsong