2013-06-06 51 views
2

我想過濾來自subreddit的結果。以下代碼按預期工作,但在首次加載頁面時不顯示結果。當我打空間或寫任何東西時,它會提出結果。當輸入爲空時,通常角度會帶來所有結果。我希望在第一次加載頁面時加載所有結果。 下面是HTML:Angular.js過濾器在空輸入上顯示沒有結果

<body ng-app> 
Search: <input ng-model="query"> 
<ul ng-controller="Reddit"> 
    <li ng-repeat="title in reddit | filter:{data.title:query} "> 
     <p>{{title.data.title}}</p> 
    </li> 
</ul> 
</body> 

和腳本:

function Reddit($scope, $http) { 
    $http.get('http://www.reddit.com/r/programming/.json').success(function(topic){ 
     $scope.reddit = topic.data.children; 
    }); 
} 

你也可以上的jsfiddle用它玩:http://jsfiddle.net/liquidcat/sZCE4/

+0

檢查控制檯,你得到一個CORS問題,檢查控制檯,它無關過濾 – Atrix1987

+0

你的小提琴在ngRepeat表達無效的語法和Ajax不起作用同源策略的「事業。 – Stewie

+0

檢查這個http://jsfiddle.net/sZCE4/5/,但它似乎有一個與JSON的問題,但JSON林特說JSON很好 – Atrix1987

回答

5

你忘了初始化query

在控制器中添加

$scope.query = ''; 

編輯:上面的說法是錯誤的。抱歉。

除上述之外,您的query變量超出了範圍。 (所以在控制器的範圍內定義query會斷開對象...)

這裏是cleanuped/working code的例子。 http://plnkr.co/edit/0aT33Q2H2SQTPG4E62Zb?p=preview

+0

它打破了搜索功能。 – Bora

+0

對不起,我的回答是完全錯誤的。它是過濾器表達式。我想你必須創建一個過濾器函數,因爲它不支持嵌套的過濾器密鑰。 – Tosh

+0

上面的代碼工作。正如你所提到的,我犯了一個錯誤,這個變量超出了範圍。 – Bora