Angularjs Angular.js过滤器在空输入上不显示结果
我想从子Reddit中筛选结果。以下代码按预期工作,但首次加载页面时未显示任何结果。当我点击空格或写任何东西时,它会显示结果。通常,输入为空时,angular会产生所有结果。我希望在第一次加载页面时加载所有结果。 以下是html: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
<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 = '';