Angularjs Angular.js过滤器在空输入上不显示结果

Angularjs Angular.js过滤器在空输入上不显示结果,angularjs,Angularjs,我想从子Reddit中筛选结果。以下代码按预期工作,但首次加载页面时未显示任何结果。当我点击空格或写任何东西时,它会显示结果。通常,输入为空时,angular会产生所有结果。我希望在第一次加载页面时加载所有结果。 以下是html: <body ng-app> Search: <input ng-model="query"> <ul ng-controller="Reddit"> <li ng-repeat="title in reddit | f

我想从子Reddit中筛选结果。以下代码按预期工作,但首次加载页面时未显示任何结果。当我点击空格或写任何东西时,它会显示结果。通常,输入为空时,angular会产生所有结果。我希望在第一次加载页面时加载所有结果。 以下是html:

<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>

您还可以在JSFIDLE上使用它:

您忘记初始化
查询了

在你的控制器里

编辑:上述陈述是错误的。对不起

除上述内容外,您的
查询
变量超出范围。 (因此,只要在控制器的作用域中定义
query
,就会断开对象的连接…)

下面是清理/工作代码示例。

检查控制台,您遇到了CORS问题,检查控制台,这与过滤器无关。您的fiddle在ngRepeat表达式中的语法无效,并且由于同源策略,Ajax无法工作。检查此项,但它似乎与JSON有问题,但JSON Lint说JSON很好对不起,我忘了更新JSFIDLE链接。我希望您在查看链接之前阅读代码。上面的代码按预期进行筛选,但仅在第一次加载时没有得到结果。它破坏了搜索功能。对不起,我的答案完全错误。它是过滤器表达式。我认为您必须创建一个过滤器函数,因为它不支持嵌套的过滤器键。正如你提到的,我犯了一个错误,变量超出了范围。
function Reddit($scope, $http) {
    $http.get('http://www.reddit.com/r/programming/.json').success(function(topic){
        $scope.reddit = topic.data.children;
    });
}
 $scope.query = '';